キーワードとデータの2つのテーブルがあります。
テーブルキーワードには2つの列(id、keyword)があり、テーブルデータには3つの列(id [keywords.idの外部キー]、名前、値)があります。
私はこのクエリを使用しています:
SELECT k.id, d.value, d.name
FROM keywords AS k
INNER JOIN data as d ON k.id = d.id
次のようなものを返します:
1 123 name1
1 456 name2
2 943 name1
3 542 name1
3 532 name2
3 682 name3
各IDには、0〜3の値を設定できます(将来的にはさらに増える可能性があります)。
同じ行の同じIDを持つすべての行を取得するにはどうすればよいですか?
いいね
1 123 456
2 943
3 542 532 682
値をソートできるようにしたいので、これを行いたいです。
GROUP_CONCAT()
を次のように使用します。
SELECT k.id, GROUP_CONCAT(d.value)
FROM keywords AS k
INNER JOIN data as d ON k.id = d.id
GROUP BY k.id
また、_ORDER BY d.name
必要に応じて値の正確な順序を取得します。このような:
SELECT k.id, GROUP_CONCAT(d.value ORDER BY d.name separator ' ')
FROM keywords AS k
INNER JOIN data as d ON k.id = d.id
GROUP BY k.id