我有两张桌子,images
和articleImages
。在两个表中都是 i_id 列,现在我需要 MySQL 答案返回图像表的行,这些articleImages
表也存在于表中。
我尝试类似
SELECT DISTINCT name FROM images,ArticleImages WHERE images.i_id!=ArticleImages.i_id
但它什么也不返回,没有DISTINCT
元素返回完全废话
尝试使用
NOT IN (...)
SELECT name
FROM images
WHERE images.i_id NOT IN (SELECT i_id FROM ArticleImages)
基本上你可以使用LEFT JOIN
. 它的作用是LEFT JOIN
返回左侧表上的所有记录,即它是否在右侧表images
上是否有匹配记录。所有不匹配的记录都将在表的列上具有NULL值,并且此记录是您要过滤的记录。ArticleImages
ArticleImages
SELECT a.*
FROM images a
LEFT JOIN ArticleImages b
ON a.i_id = b.i_id
WHERE b.i_id IS NULL
要进一步了解有关联接的更多信息,请访问以下链接: