0
可以讓我有一個表Table1(id INT,text,b text,c text)和Table2(id INT,row0 text,row1 text,row2 text)。我在Table1上有一些數據,並將其遷移到Table2(id-> id,a-> row0,b-> row1,c-> row2)。現在,我想檢查是否所有的數據都被遷移了,如果這些字段都是好的。我使用這個選擇爲了找到錯誤的Id值,但我不知道找出哪些列是不好的,例如,我有記錄Table1(1,hel,l ,O)和記錄表2(1,他,空,鄰)我想知道的是,列A/0行和b/ROW1是錯誤的在MySQL中獲取不同的列
SELECT Table1.id, Table2.id FROM Table1 INNER JOIN Table2 ON Table1.id = Table2.id WHERE
Table1.a != Table2.row0 OR
(Table1.a NOT NULL AND BI_EN.contract.Table2.row0 IS NULL) OR
(Table1.a IS NULL AND BI_EN.contract.Table2.row0 IS NOT NULL) OR
Table1.b != Table2.row1 OR
(Table1.b NOT NULL AND BI_EN.contract.Table2.row1 IS NULL) OR
(Table1.b IS NULL AND BI_EN.contract.Table2.row1 IS NOT NULL) OR
Table1.c != Table2.row2 OR
(Table1.c NOT NULL AND BI_EN.contract.Table2.row2 IS NULL) OR
(Table1.c IS NULL AND BI_EN.contract.Table2.row2 IS NOT NULL)
該代碼不能按預期工作,因爲它給了我所有的列,而不僅僅是那些不一樣的,這就是我不知道如何獲得 –
你原來的查詢只得到'id's。當您執行sql查詢時,您無法獲得不同數量的列。任何查詢總是返回相同數量的列。所以如果你只需要記錄ID - 你可以從SELECT的部分刪除其他字段。 – Alex