を選択するために、私はそうはすべてのオブジェクトは、n個のグループにすることができ、3つのテーブルGROUP BY、GROUP_CONCAT、CONCAT、どのよう
objects id, field1, field2, ...
groups id, title, color
group_ref oid, gid
を得ました。私は、オブジェクトのリストと、そのリストの一つのフィールドを表示したい
は、オブジェクトが入っているグループであるので、ここで私が思い付いたものです:。実際に動作し、私が作成できる
SELECT o.id,
CONCAT_WS("||", GROUP_CONCAT(gx.gid separator "|"), GROUP_CONCAT(gr.title, "#", gr.color separator "|")) AS groups
FROM objects AS o
LEFT JOIN group_ref AS gx ON o.id = gx.oid
LEFT JOIN groups AS gr ON gx.gid = gr.id
WHERE 1
GROUP BY o.id
(連結された)グループフィールドのうち必要なインターフェース。
問題:特定のグループに属するオブジェクトのみを選択する方法(例:gid = 4)
これは結果のみの一部を取得します。
WHERE gr.id = 4
または
HAVING gr.id = 4
すべてのヘルプは大歓迎します! (多分concatのthingyのためのよりエレガントな方法があります)
"は動作していません"は説明ではありません – zerkms