我正在尝试通过在两个查询中返回相等值的字段 ANCHOR 合并两个查询的结果
SELECT
anchor_date AS anchor, <======================= query one, field "anchor"
SUM( GETVAL(24, entry_id) ) AS valueQ1 <======= query one, field "valueQ1"
FROM users
WHERE blog_id = 173
GROUP BY DATE(anchor)
UNION
SELECT
anchor AS anchor, <============================ query two, field "anchor"
SUM(value) AS valueQ2 <======================== query two, field "valueQ2"
FROM infodata
WHERE infoid IN(330, 1492, 1066)
AND entity = 173
我需要这样的结果:
anchor valueQ1 valueQ2
------ ------- -------
abcdef 123 456
abcdef 123 456
abcdef 123 456
我正在尝试使用 UNION 但没有成功。也许相交或连接?
最佳答案
SELECT anchor, MAX(valueQ1) AS valueQ1, MAX(valueQ2) AS valueQ2
FROM (
SELECT
anchor_date AS anchor,
SUM( GETVAL(24, entry_id) ) AS valueQ1,
NULL AS valueQ2
FROM users
WHERE blog_id = 173
GROUP BY DATE(anchor)
UNION
SELECT
anchor AS anchor,
NULL AS valueQ1,
SUM(value) AS valueQ2
FROM infodata
WHERE infoid IN(330, 1492, 1066)
AND entity = 173) AS u
GROUP BY anchor
关于mysql - 如何通过一列组合两个不同的查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21767364/