1

我正在使用现有的数据库,我有一个问题,我知道你们 SQL 人员可以解决。我有 2 个表,其中有一个项目 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 行,一个用于第一个项目的每个元条目。是否可以构造我的查询以返回一个响应?

也许是这样的:

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 回答