【发布时间】:2017-12-26 09:33:13
【问题描述】:
我有 2 个不同的表共享相同的列名。这些表列出了由“id”标识的相同产品。这些产品在两个表格中都有不同的收入,并且在每个表格中多次列出。
我想将 2 个表格中相同产品的收入相加,然后按总和排序。结果是首先对收入最高的产品进行排序。
我尝试了 JOIN 和 UNION,但似乎找不到正确的解决方案。
我尝试过的 UNION 查询...
SELECT id, SUM(rev) as total
FROM (
SELECT id, rev FROM table1 UNION ALL
SELECT id, rev FROM table2 UNION ALL
)
ORDER BY total DESC
我试过的JOIN查询...
SELECT table1.id,
table1.rev,
table2.id,
table2.rev,
(table1.rev + table2.rev) as revenue
FROM table1
INNER JOIN table2 ON table1.id = table2.id
ORDER BY revenue DESC
【问题讨论】:
-
两个表的 ID 和 REV 是否相同?
-
您使用的是 MySQL 还是 Microsoft SQL Server?请删除不相关的标签。
-
两个表中的 ID 相同,并且在每个表中列出了多次。 rev 在行上是不同的。
-
mysql,对不起,我删除了另一个
标签: mysql join sql-order-by union