2013-04-15 59 views
0

表中的值请参考下表articlearticle_image查询的两个表和CONCAT在MySQL

表文章

id a_id title 
1 1 abc 
2 2 def 
3 3 ghi 
4 4 jkl 
5 5 mno 

表article_image

id a_id image 
1 1 a.jpg 
2 1 b.jpg 
3 1 c.jpg 
4 3 d.jpg 
5 3 e.jpg 
6 3 f.jpg 
7 4 g.jpg 
8 4 h.jpg 

我试着查询

SELECT article.a_id, article.title, article_image.image FROM article JOIN article_image ON (article.a_id = article_image.a_id) GROUP BY article_image.thumbnail

但结果不是我想要的东西,在预期的结果应该是:

a_id tilte image 
1 abc a.jpg, b.jpg, c.jpg 
2 def 
3 ghi d.jpg, e.jpg, f.jpg 
4 jkl g.jpg, h.jpg 
5 mno 

有人能告诉我如何查询这两个表如上导致?

感谢

+0

by子句删除该组,并使用左加入而不是加入,然后看看结果是什么。 –

回答

4

使用MySQL内置函数GROUP_CONCAT,与LEFT JOIN以包括曾在其他表中没有图片的文章:

SELECT 
    article.a_id, 
    article.title, 
    GROUP_CONCAT(article_image.image SEPARATOR ',') AS images 
FROM article 
LEFT JOIN article_image ON article.a_id = article_image.a_id 
GROUP BY article.a_id, 
     article.title; 
+0

伟大的作品! –

0
"SELECT article.a_id, article.title, article_image.image FROM article 
INNER JOIN article_iamge ON article.a_id = article_image.a_id