MySQL PIVOT和JOIN内部最大大小写

MySQL PIVOT和JOIN内部最大大小写,mysql,join,max,Mysql,Join,Max,我有两个表domain和domain\u meta。我想要完成的是透视表domain_meta(我能够做到),并将该表与domain连接起来。但是我不能把我的头绕到如何用PIVOT和MAX CASE连接这些表上。对我的域\元表使用某种内部选择的最简单方法是什么?到目前为止,我的代码如下所示: 域 SELECT * FROM domain ORDER BY id 域\u元 SELECT id, domain_id, source, MAX(CASE WHEN (meta_key = 'doma

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

SELECT
*
FROM 
domain
ORDER BY id
域\u元

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

类似这样的东西-

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

@RogerK Welcome您还可以自动生成pivot查询,这里是一个示例-