2013-04-06 97 views
0

我有两个表,imagesarticleImages。在这两个表中都是i_id列,现在我需要MySQL答案返回表中的图片表,这些表也存在于articleImages表中。Smysql显示第一个表中的第一个表的结果

我试图像

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

,但其回报什么,没有DISTINCT元素返回总废话

+0

请张贴样本数据和期望的结果集。 – Kermit 2013-04-06 23:32:53

回答

0

尝试使用

NOT IN (...) 

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

MySQL Doco

+0

请扩大您的答案。 – Kermit 2013-04-06 23:31:39

0

基本上你可以加入这两个表使用LEFT JOINLEFT 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 

为了进一步获得更多的知识有关联接,请访问以下链接:

相关问题