1

私は既存のデータベースを扱っていますが、質問があります。SQL 担当者なら理解できると思います。私には2つのテーブルがあり、アイテムIDと説明があり、他のアイテムにはそのアイテムのすべてのメタが保存されています。

私の2つのテーブルはこのようなものです....

items- 
----------------
id | description
----------------

itemsmeta-
-----------------------------------------
itemmeta_id | item_id | fieldkey | value
-----------------------------------------

私がする必要があるのは、できれば特定のアイテム ID に基づくオブジェクトまたは配列として、単一の応答を取得することです。したがって、特定のアイテム ID に基づいてすべてのメタ情報を取得すると言いたいと思います。

こんなことしたら…

SELECT * FROM items LEFT JOIN itemsmeta ON itemsmeta.item_id = items.id WHERE items.id = 1

項目番号 1 のメタ エントリごとに 1 行ずつ、約 9 行が返されます。1 つの応答を返すようにクエリを構成することはできますか?

たぶん次のようなもの:

Array( [0] => stdClass Object ( [ID] => 1 [Name] => Blah Blah [Meta 1] => Blah Blah [Meta 2] => Blah Blah) ) など?

4

1 に答える 1

1

GROUP_CONCAT関数を使用できます

SELECT id, description, GROUP_CONCAT(value)
FROM items
LEFT JOIN itemsmeta  ON items.id = itemsmeta.item_id
GROUP BY item.id;
于 2012-07-08T18:48:56.780 に答える