EAV テーブル設計を使用しなければならない状況があります。
次の2つのテーブルがあります。
ノード
id name structure_id
1 name 1 7
2 name 2 7
属性
id node_id name value structure_id
1 1 firstname test 7
2 1 lastname test 7
3 2 firstname test 7
次のクエリがあります
SELECT n.*, GROUP_CONCAT( CONCAT_WS('||', a.name, a.value) ORDER BY a.name SEPARATOR ';;' ) as _attributes
FROM nodes n JOIN attributes a ON n.structure_id = a.structure_id where n.structure_id = 7
上記のクエリは次を出力します (1 行のみ)
id: 1
name: name 1
structure_id: 7
_attributes: firstname||test;;firstname||test;;firstname||test;;firstname||test;;lastname||test;;lastname||test
attributesからの行を含むノードテーブルから 2 つの行を出力するにはどうすればよいですか?