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