mysql - Select columns which are different between 2 table versions -


let's have following table structure:

table1          fixedcolumn1 fixedcolumn2 changingcolumn1 changingcolumn2         test1        test11       1               3         test2        test22       2               5 

same table1 updated , saved in table same structure

sametable1updated          fixedcolumn1 fixedcolumn2 changingcolumn1 changingcolumn2         test1        test11       77               23         test2        test22       22               5         test3        test33       5                null 

now, have following table in want save modified data:

differencestable  fixedcolumn1 fixedcolumn2 change         columnname       newvalue oldvalue test1        test11       modified        changingcolumn1  77       1 test1        test11       modified        changingcolumn2  23       3 test2        test22       modified        changingcolumn1  22       2 test3        test33       added           changingcolumn1   5       null 

the combination of fixedcolumn1 , fixedcolumn2 unique(like primary key).

i have idea on how in code working datatables, possible in sql?

edit:

so table1 updated @ point , saved in sametable1updated (some rows change, removed or added). if row values have changed table1 , still appear in sametable1updated, added parameter change modified , oldvalue tableand new value fromsametable1updated. if row removed table1, appear parameterchangeasremovedand witholdvalueparameter values fromtable1andnewvalue` parameter null records. , other way around newly added rows in table2.

i've explained situation in best way can. please let me know if need more information.

join tables find changingcolumn1 changes. same changingcolumn2 changes. union all results:

select t1.fixedcolumn1, t1.fixedcolumn2,        stu.changingcolumn1 newvalue, t1.changingcolumn1 oldvalue table1 t1 join sametable1updated stu     on  t1.fixedcolumn1 = stu.fixedcolumn1     , t1.fixedcolumn2 = stu.fixedcolumn2     , t1.changingcolumn1 <> stu.changingcolumn1 union select t1.fixedcolumn1, t1.fixedcolumn2,        stu.changingcolumn2 newvalue, t1.changingcolumn2 oldvalue table1 t1 join sametable1updated stu     on  t1.fixedcolumn1 = stu.fixedcolumn1     , t1.fixedcolumn2 = stu.fixedcolumn2     , t1.changingcolumn2 <> stu.changingcolumn2 order t1.fixedcolumn1, t1.fixedcolumn2 

Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -