在2个或更多表上使用列名作为结果标题

时间:2017-01-07 21:58:45

标签: mysql sql

我已经搜索了一段时间,但还没有找到解决方案。我有2个mysql表。 对象。对象描述页面,帖子,类别和东西

table object
----------
id    type

有关每个对象的其他信息存储在表meta

table meta
-----------------------------------------
id    object_id    meta_key    meta_value

如果我有一个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(已修改)链接。谢谢。

1 个答案:

答案 0 :(得分:1)

尝试......

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