[英]Joining 3 Subqueries
在创建此查询时,我需要一点帮助。 我正在加入TableA
和TableB
并TableB
获得价值。 然后加入TableA
和TableC
并获取值。 最后,我减去了两个值。
我不确定如何使用大量的JOIN
在单个查询中编写此代码,或者我只是执行2个子查询然后减去它们。
到目前为止,我有这样的事情:
SELECT SUM(A.quantity) From TableA JOIN Table B WHERE ...
然后
SELECT SUM(A.quantity) From TableA JOIN Table C WHERE ...
鉴于也许有机会TableA
和TableB
没有结果,但TableA
和TableC
呢,或者反之亦然,或者也许都有或许都不会,我不能只是JOIN
TableA
和TableB
和TableC
您可以通过cross join
来做到这一点:
select coalesce(s1.q1, 0) - coalesce(s2.q2, 0)
from (SELECT SUM(A.quantity) as q1 From TableA JOIN Table B WHERE ...) s1 cross join
(SELECT SUM(A.quantity) as q2 From TableA JOIN Table C WHERE ...) s2;
如果结果集之一返回NULL
,则coalesce()
会将值视为0
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.