如何获得与另一列不匹配的列的字段?

我试过了:

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的评论)

08-19 13:52