首页 > 解决方案 > 将所有链接表条目连接在一行中

问题描述

我一直在尝试获取一个查询,该查询允许我将事件的所有音乐流派(链接表)放在一行中,但到目前为止我一直很不成功;它不断返回 2 行,每行都包含有关事件的相同信息,但在 LEFT JOIN 处更改了音乐流派条目。这是我的查询:

SELECT 
    events.*
    , music_genres_link.* 
FROM events 
LEFT JOIN music_genres_link 
    ON events.id = music_genres_link.event_id 
WHERE events.id=1 
ORDER BY date DESC 

这是它返回的内容:

phpmyadmin 截图

如何将这两行放在一起?我需要genre_title 和genre_id 列。

我想获取整个事件行并左加入结果左侧链接表中找到的所有音乐流派,如下所示:

[事件结果] [music_genre_1 (id, title)] [music_genre_2 (id, title)] 等

标签: mysqlsql

解决方案


似乎您有 2 行与加入匹配music_genres_link。您可以从两个 'gender_id' 值 - 5 和 295 中看到这一点。

好的,现在您已经编辑了您的问题,您想要一些不典型的 SQL。您可以使用PIVOT实现这一点,但您对流派的数量没有限制,我不推荐它。您需要重新考虑您的表格以及您想要实现的目标。


推荐阅读