mysql - 如何通过一列组合两个不同的查询结果

标签 mysql sql

我正在尝试通过在两个查询中返回相等值的字段 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/

相关文章:

php - 如何在 Magento 数据库中存储日期时间值?

php - Jquery自动补全+Mysql

sql - 如何将一行插入到只有一个自动增量列的表中?

MySQL 事务隐式提交

PHP/HTML - 没有登录但来自导航链接的个人资料页面

sql - 需要加入方面的帮助

mysql - 如何编写触发器来更新另一个表中的属性

PHP/MySQL 致命内存分配错误

mysql - SQL更新表困惑?

php和mysql没有添加表