Smysql显示第一个表中的第一个表的结果
问题描述:
我有两个表,images
和articleImages
。在这两个表中都是i_id列,现在我需要MySQL答案返回表中的图片表,这些表也存在于articleImages
表中。Smysql显示第一个表中的第一个表的结果
我试图像
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)
+0
请扩大您的答案。 – Kermit 2013-04-06 23:31:39
答
基本上你可以加入这两个表使用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
为了进一步获得更多的知识有关联接,请访问以下链接:
请张贴样本数据和期望的结果集。 – Kermit 2013-04-06 23:32:53