2016-09-22 83 views
1

我有两个表。画廊和联接。联接 - 从一个表中获取行,然后获取在另一个表中匹配的所有行?但是不应该重复第一个表匹配行

Gallery 
id | title 
1 | Dog Gallery 
2 | Cat Gallery 

Joins 
id | gallery_id | picture_id 
1 |  1  |  100 
2 |  1  |  101 
3 |  2  |  56 
4 |  1  |  102 

我想ID,画廊标题从画廊 - 其中id等于一个特定的ID,但还可以得到所有的行从哪里连接库ID等于一个特定的画廊ID。

因此,如果上面的id是1.我想从画廊和picture_ids 100,101和102从连接的狗画廊。

现在的问题是画廊标题应该来一次。 结果是标题=狗画廊picture_id = 100,title =狗画廊picture_id = 101,title =狗画廊picture_id = 102我需要这样的结果 title =狗画廊picture_id = 100,picture_id = 101 and picture_id = 102

+0

添加预期的结果也是如此。 – Wanderer

回答

1

您可以使用GROUP_CONCAT知道所有的ID作为字符串

SELECT G.*, GROUP_CONCAT(DISTINCT P.picture_id ORDER BY P.picture_id DESC SEPARATOR ',') 
FROM gallery as G 
LEFT JOIN pictures as P ON P.gallery_id = G.id 
GROUP BY G.id; 
+0

感谢它解决我的问题 –

相关问题