将MYSQL数据库中的多行元信息组合到一个响应中

时间:2012-07-08 18:24:47

标签: php mysql sql join left-join

我正在使用现有的数据库,我有一个问题我知道你们SQL人员可以指出。我有2个表,on有一个项目ID和一个描述,另一个存储所有项目的元数据。

我的两张桌子就是这样......

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

它返回约9行,第1项的每个元条目对应一行。是否可以构造我的查询以返回一个响应?

可能是这样的:

数组([0] => stdClass对象([ID] => 1 [名称] => Blah Blah [Meta 1] => Blah Blah [Meta 2] => Blah Blah))和等等?

1 个答案:

答案 0 :(得分:1)

您可以使用 GROUP_CONCAT 功能

SELECT id, description, GROUP_CONCAT(value)
FROM items
LEFT JOIN itemsmeta  ON items.id = itemsmeta.item_id
GROUP BY item.id;