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


Combining multiple row meta info from MYSQL database to one response

我正在使用一个现有的数据库,我有一个问题,我知道你们SQL可以解决。我有两个表,上有一个项目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[Name]=>Blah-Blah[Meta 1]=>Blah-Brah[Meta2]=>Blah Blah))等等?

您可以使用GROUP_CONCAT函数

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