【问题标题】:MySQL PIVOT and JOIN inner MAX CASEMySQL PIVOT 和 JOIN 内部 MAX CASE
【发布时间】:2017-03-24 10:20:52
【问题描述】:

我有两个表 domaindomain_meta。我想要完成的是 PIVOT 表 domain_meta (我能够做到)并将该表与域连接。但是我不能把我的头围绕如何将这些表与 PIVOT 和 MAX CASE 连接起来。对我的 domain_meta 表使用某种内部选择的最简单方法是什么?到目前为止,我的代码如下所示:

SELECT
*
FROM 
domain
ORDER BY id

domain_meta

SELECT
id,
domain_id,
source,
MAX(CASE WHEN (meta_key = 'domain') THEN meta_value ELSE NULL END) AS domain,
MAX(CASE WHEN (meta_key = 'ip') THEN meta_value ELSE NULL END) AS ip,
MAX(CASE WHEN (meta_key = 'link') THEN meta_value ELSE NULL END) AS link,
MAX(CASE WHEN (meta_key = 'net') THEN meta_value ELSE NULL END) AS net
FROM
domain_meta
GROUP BY id
ORDER BY id

domain domain_meta

【问题讨论】:

    标签: mysql join max


    【解决方案1】:

    类似的东西-

    SELECT
      d.id,
      d.domain,
      MAX(CASE WHEN (dm.meta_key = 'domain') THEN dm.meta_value ELSE NULL END) AS domain,
      MAX(CASE WHEN (dm.meta_key = 'ip') THEN dm.meta_value ELSE NULL END) AS ip,
      MAX(CASE WHEN (dm.meta_key = 'link') THEN dm.meta_value ELSE NULL END) AS link,
      MAX(CASE WHEN (dm.meta_key = 'net') THEN dm.meta_value ELSE NULL END) AS net
    FROM
      domain d
      LEFT JOIN domain_meta dm
        ON d.id = dm.domain_id
    GROUP BY d.id
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 2016-04-06
    • 2017-12-07
    • 2012-04-02
    相关资源
    最近更新 更多