1
我的問題與MySQL: is it possible to group_concat multiple rows?非常相似,但我無法弄清楚組連接的工作方式。MySQL - 帶連接的GROUP_CONCAT
我的實際數據集很難解釋 - 我將使用一組簡化的表格和關係作爲示例。
說我有一個表photos
id filename
1 bob.jpg
2. ken.png
3. lisa.jpg
4. jim.jpg
...
和一張桌子tags
id title
1 family
2 friends
3 school
4 california
...
和一個叫photo_tags
photo tag
1 2
1 3
1 4
2 1
3 1
,我想回行這樣的橋:
photo_id filename tags
1 bob.jpg 2,3,4
2 ken.png 1
3 lisa.jpg 1
4 jim.jpg (NULL)
或...
photo_id filename tags
1 bob.jpg friends,school,california
2 ken.png family
3 lisa.jpg family
4 jim.jpg (NULL)
我最初的猜測是這樣的:
SELECT photos.filename,
GROUP_CONCAT(photo_tags.tag) AS associated_tags
FROM photos
LEFT OUTER JOIN tags
ON tags.photo = photos.id
GROUP BY photo_tags.tag
但(可能的人明顯誰知道他們在做什麼),那沒」工作。在做了一些研究並參考了上面的鏈接之後,我嘗試了各種排列:
SELECT
file_name,
GROUP_CONCAT(photo_tag_ids) AS associated_tags
FROM (
SELECT
photos.filename AS file_name,
photo_tags.tag AS photo_tag_ids
FROM
photos
INNER JOIN photo_tags
ON photo_tags.photo= photos.id
) whatever
GROUP BY file_name
ORDER BY file_name;
TYIA。
作品,謝謝。原來我試過,但用戶界面(sqlyog)沒有顯示出於未知原因的連續值。我會盡快接受(4分鐘)。 – momo 2012-08-12 06:21:05