我想SUM(column_a)从两个不同的表中获取,并获得它们的区别。我正在使用MySQL。
SUM(column_a)
Table A's sum = 1234
Table B's sum = 4001
我不确定要在我的ON条款中添加什么:
ON
SELECT SUM(a.column1) AS table_a_sum, SUM(b.column1) AS table_b_sum, SUM(a.column1) - SUM(b.column1) AS difference FROM table_a a JOIN table_b b ON ??????
无条件的联接是交叉联接。交叉联接为左侧表的每一行重复右侧表的每一行:
FROM table_a a CROSS JOIN table_b b
需要注意的是在MySQL中,cross join/ join/inner join是相同的。所以你可以这样写:
cross join
join
inner join
FROM table_a a JOIN table_b b
只要您省略该on子句,它就可以作为交叉联接使用。
on
如果您想对两个表中的两列求和,则交叉联接将不起作用,因为它会重复行。您会得到很高的数字。总而言之,根据@sgeddes答案,更好的方法是使用子查询。