私のMySQLテーブル構造は、次のような2つのテーブルで構成されています。
UserId field1 field2
1 XXX YYY
2 ABC DDD
3 EEE FFF
.
.
.
n GGG DDD
UserId attribute
1 blah
1 adfadf
1 ddad
2 adff
3 adfa
3 sdff
.
.
.
z adss
表1には、IDごとに1つのレコードしかありません。表2には、IDごとにM個のレコードがあります。表1と表2のIDは関連しています。私のクエリは次のようになります。
SELECT
t1.`UserId`,
t1.`field1`,
t1.`field2`,
t2.`attribute`
FROM `table1` AS `t1`
LEFT JOIN `table2` AS `t2` ON `t1`.UserId = `t2`.UserId
WHERE t1.`UserId` = 3
クエリは次を返します。
3 EEE FFF adfa
3 EEE FFF sdff
それぞれに重複したレコードを返したくありません。単一の行を返したい、のようなもの
3 EEE FFF (adfa,sdff)
4番目のフィールドは、指定されたユーザーIDに対して返されるすべての属性を含むデータ構造(配列?結果セット?)です。
編集:::CONCATを含む多くのソリューションがあり、これをCSVに変換します。カンマを含むフィールドは、物事を台無しにする可能性がありますか?