0

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

我尝试类似

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

但它什么也不返回,没有DISTINCT元素返回完全废话

4

2 回答 2

0

尝试使用

NOT IN (...)

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

MySQL 文档

于 2013-04-06T23:29:11.213 回答
0

基本上你可以使用LEFT JOIN. 它的作用是LEFT JOIN返回左侧表上的所有记录,即它是否在右侧images上是否有匹配记录。所有不匹配的记录都将在表的列上具有NULL值,并且此记录是您要过滤的记录。ArticleImagesArticleImages

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

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-04-06T23:33:36.073 回答