我已经搜索了一段时间,但没有找到解决方案。我有 2 个 mysql 表。 对象和元。对象描述页面、帖子、类别和内容
table object
----------
id type
有关每个对象的附加信息存储在表元中
table meta
-----------------------------------------
id object_id meta_key meta_value
如果我有 1 个 id 为 1 的对象,并且我的两个表如下所示
object | meta
--------- | -------------------------
1 post | 1 1 title a title
2 1 content a content
有没有办法产生这样的输出
object_id type title content
-------------------------------------
1 post a title a content
即使有 10 个、20 个或更多字段?这是一个sqlfiddle (已编辑)链接。谢谢。
最佳答案
尝试...
select o.id, o.type, om.title, om.content
from object o left join (
select object_id,
max(case when meta_key = 'title' then meta_value end) as title,
max(case when meta_key = 'content' then meta_value end) as content
from object_meta
group by object_id) om on o.id = om.object_id
关于mysql - 在 2 个或更多表上使用列名称作为结果标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41527030/