作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想从两个不同的表中获取SUM(column_a)
,并求出它们的差值。我正在使用 MySQL。
表 A 的总和 = 1234
表 B 的总和 = 4001
我不确定要在我的 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
是相同的。所以你可以这样写:
FROM table_a a
JOIN table_b b
只要您省略 on
子句,这将用作交叉连接。
如果您想对两个表中的两列求和,交叉连接将不起作用,因为它会重复行。你会得到高度膨胀的数字。对于总和,根据@sgeddes 的回答,更好的方法是使用子查询。
关于mysql - 如何在没有 ON 子句的情况下连接 2 个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15508142/
我是一名优秀的程序员,十分优秀!