我在MySQL中有两个表,而且我在连接和select-from-select语句方面非常糟糕。我的一张桌子看起来像这样:
|id | label |
|123 | "foo" |
|456 | "bar" |
|789 | "baz" |
另一个看起来像这样:
|id | tag |
|123 | 456 |
|123 | 789 |
|456 | 789 |
我想要一个观点 - 表现并不是特别重要 - 看起来像这样:
| id | label | tags |
| 123 | "foo" | "bar,baz" |
| 456 | "bar" | "baz" |
我怎样才能做到这一点?我知道内连接和group_concat操作符,但我不确切知道如何用标签替换ID。
答案 0 :(得分:2)
这有点棘手,因为你需要一个聚合以及几个join
s:
select t1.id, t1.label, group_concat(tt1.label) as tags
from t1 join
t2
on t1.id = t2.id join
t1 tt1
on t2.tag = tt1.id
group by t1.id, t1.label