嗨,我有一个旧的表和新的表具有相同的索引/数据。 TABLE1和TABLE2如何比较两个表格数据?
但TABLE1已经获得比TABLE2更多的数据。这是由一个维护,我不知道这是如何发生的。所以我的问题是我如何比较这两个表,并找到哪些数据是TABLE2失踪?有几乎20万DATAS有人工手动操作是不可能的......
在PHP嗨,我有一个旧的表和新的表具有相同的索引/数据。 TABLE1和TABLE2如何比较两个表格数据?
但TABLE1已经获得比TABLE2更多的数据。这是由一个维护,我不知道这是如何发生的。所以我的问题是我如何比较这两个表,并找到哪些数据是TABLE2失踪?有几乎20万DATAS有人工手动操作是不可能的......
在PHP解决方案,而嵌套查询:
select TABLE1.id from TABLE1 left join TABLE2 on TABLE1.id = TABLE2.id where TABLE2.id is null
:
http://us.php.net/manual/en/function.array-diff.php
在SQL:
SELECT * FROM TABLE1 WHERE id {NOT} IN (SELECT id FROM TABLE2)
根据比较的标准
你的意思是这样的:
SELECT * FROM TABLE1 t1 WHERE NOT EXISTS(SELECT * FROM TABLE2 WHERE t1.id == t2.id)
相同的索引我希望你的意思是他们共享一个主键?
SELECT * FROM表1 WHERE用户名NOT IN(SELECT用户名FROM表2)
你能解释这一点? – mathew 2011-01-10 03:17:33
@mathew:这里我选择TABLE1中的管子,如果TABLE2中没有相同ID的管子。我认为你应该提供更多关于2个表格的信息。在这里,我假设你的两张桌子有相同的字段和结构。但是,从你的评论看来,这不太正确。 – 2011-01-10 03:23:04
好的将解释..两个表是相同的。我所看到的是两个表都包含用户的详细信息,所以我想找到哪些用户在表2中缺失 – mathew 2011-01-10 03:26:54