例:
表:箱
boxID color
01 red
02 blue
03 green
表: boxHas
boxID has
01 apple
01 pear
01 grapes
01 banana
02 lime
02 apple
02 pear
03 chihuahua
03 nachos
03 baby crocodile
各ボックスの内容に対してクエリを実行し、各 ID、色、および各ボックスの内容を連結する列を含むテーブルを返したいので、次を使用します。
SELECT box.boxID, box.color,
GROUP_CONCAT(DISTINCT boxHas.has SEPARATOR ", ") AS contents
FROM box
LEFT JOIN boxHas ON box.boxID=boxHas.boxID
WHERE boxHas.has IN ('apple','pear')
GROUP BY box.boxID
ORDER BY box.boxID
そして、次の結果の表を取得します。
boxID color contents
01 red apple, pear
02 blue apple, pear
あなたへの私の質問は、列のすべてのhas
値をリストしていないのはなぜですか? contents
私のWHERE
ステートメントも私のものをトリミングしているのはなぜGROUP_CONCAT
ですか?
私が取得しようと思っていたテーブルは次のとおりです。
boxID color contents
01 red apple, banana, grapes, pear
02 blue apple, lime, pear
ステートメントにboxID
基づいて結果を制限したいのですが、有効なボックスのフィールドを制限したくありません。:-/WHERE
contents
ヘルプ?