如何获得与另一列不匹配的列的字段?
我试过了:
SELECT table1.page_title
FROM table1, table2
WHERE table1.page_title != table2.page_title
它产生很多重复的字段,所以我做了一个:
SELECT DISTINCT table1.page_title
FROM table1, table2
WHERE table1.page_title != table2.page_title
但它挂了。
任何帮助将不胜感激,谢谢!
附言
我这样做是为了为mediawiki的MWDumper工具创建一个排除列表。我需要它,以便在导入输出的sql时,我当前的wiki条目不会被覆盖。
编辑:
是的,它们是2个不同的表。每个都有大约70,000多个记录
为什么我的查询速度慢?如果有人可以澄清我将不胜感激,这样我就可以了解原因:)再次感谢!
最佳答案
a和b是不同的表,都具有“ page_title”列吗?
如果是这样,请尝试以下操作:
SELECT DISTINCT page_title FROM a
WHERE page_title NOT IN (SELECT page_title FROM b)
如果您只想删除重复项(如果您只有一个表),那么有几种方法可以做到,其中两种是:
SELECT DISTINCT page_title FROM a
要么
SELECT page_title FROM a
GROUP BY page_title
GROUP BY选项虽然更慢但也更强大-您可以添加HAVING子句以仅选择显示例如两次以上:
SELECT page_title FROM a
GROUP BY page_title
HAVING COUNT(page_title) > 2
希望能有所帮助
(感谢亚伦·F的评论)