前提
次のテーブルからlimit3として値を取り出していました。
id | name |
---|---|
1 | い |
2 | ろ |
3 | は |
4 | に |
5 | ほ |
【取得結果】
id | name |
---|---|
1 | い |
2 | ろ |
3 | は |
しかし、多対多の関係でtagテーブルを結合したところ
id | name | tag |
---|---|---|
1 | い | a |
1 | い | b |
2 | ろ | a |
2 | ろ | c |
2 | ろ | d |
3 | は | b |
4 | に | a |
4 | に | f |
5 | ほ |
といったレコードの抽出となり、limit3の結果は
id | name | tag |
---|---|---|
1 | い | a |
1 | い | b |
2 | ろ | a |
となってしまいます。
###実現したいこと
こう取り出したいです。
id | name | tag |
---|---|---|
1 | い | a |
1 | い | b |
2 | ろ | a |
2 | ろ | c |
2 | ろ | d |
3 | は | b |
idの数がlimit3となるような抽出の仕方がわかりません。ご回答願います。
追加情報など必要ありましたらご質問ください。
補足情報(FW/ツールのバージョンなど)
MySQL
[追記]
多対多の結合に関して、次のようなJOIN句を入れています。
sql
1SELECT t1.id AS id, t1.name AS name, tags.name AS tag 2 FROM t1 3 LEFT JOIN tag_relation ON t1.id = tag_relation.t1_id 4 LEFT JOIN tags ON tag_relation.tag_id = tags.id 5 ORDER BY t1.id ASC 6 LIMIT 3
テーブルとカラム
t1 | tag_relation | tags |
---|---|---|
id | id | id |
name | t1_id | name |
tag_id |
回答1件
あなたの回答
tips
プレビュー