Mysql显示不在第二个表中的第一个表的结果

时间:2013-04-06 22:26:02

标签: mysql sql join

我有两个表,imagesarticleImages。在这两个表中都是i_id列,现在我需要MySQL回答返回图像行表,这些表也存在于articleImages表中。

我尝试了类似

的内容
SELECT DISTINCT name FROM images,ArticleImages WHERE images.i_id!=ArticleImages.i_id

但它没有返回,没有DISTINCT元素返回总废话

2 个答案:

答案 0 :(得分:0)

尝试使用

NOT IN (...)

SELECT name
FROM images
WHERE images.i_id NOT IN (SELECT i_id FROM ArticleImages)

MySQL Doco

答案 1 :(得分:0)

基本上,您可以使用LEFT JOIN加入两个表。 LEFT JOIN执行的操作是返回左侧表中的所有记录images是否在右侧具有匹配的记录表格为ArticleImages。所有无匹配的记录都会在表ArticleImages的列上显示 NULL 值,并且此记录是您要过滤的记录。

SELECT  a.*
FROM    images a
        LEFT JOIN ArticleImages b
            ON a.i_id = b.i_id
WHERE   b.i_id IS NULL

要进一步了解联接,请访问以下链接: