根据表之间共享的ID创建SQL视图

时间:2017-01-14 02:12:03

标签: mysql sql

我在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。

1 个答案:

答案 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