我有两张桌子:购买和销售。 下面的查询给出了'pqty'和'sqty'之间的区别
有人可以解释以下查询的工作原理吗?存储在X,Y中的是什么? 请参阅链接以获取所选查询的输出。 Select queries for two tables
select X.totalpqty - Y.totalsqty
from
(select sum(pqty) as totalpqty from purchase where wasteid = 2)X,
(select sum(sqty) as totalsqty from sale where recyclerid = 102001)Y;
答案 0 :(得分:1)
给定的查询动态创建2个表:
首先在飞行表X上:
select sum(pqty) as totalpqty from purchase where wasteid = 2
仅使用一个值创建table
X:totalpqty
,即具有wasteid=2
的pqty的总和。
第二个飞行表Y:
select sum(sqty) as totalsqty from sale where recyclerid = 102001
创建只有一个值的table
Y:totalsqty
,即具有recyclerid=102001
的sqty的总和。
这两个表(X和Y)没有连接,因为没有必要这样做,因为它们每个只返回一个值。笛卡尔积只是一行,有两列:
最后,主查询获取2个子查询返回的2个值,并执行所需的实际减法(X.totalpqty - Y.totalsqty
)。
答案 1 :(得分:0)
X和y是两个子查询结果别名,它有两个列 totalpqty totalsqty