【发布时间】:2015-11-09 18:17:04
【问题描述】:
sqlite 在执行此查询时返回行数
SELECT sum(s.Card_10) ,sum(p.Card_10) FROM Sales_Table s , Purchase_Table p
回答 是 sum(s.Card_10) 4 和 sum(card_10) 是 40
但如果有任何单独执行这些查询,它会重新运行正确答案
Select sum(Card_10) from sales_table
回答 1 和
Select sum(Card_10) from Purchase_table
回答
40
为什么在这种类型的 JOINS 中会发生错误?
【问题讨论】:
-
不要在
FROM子句中使用逗号。它创建两个表的笛卡尔积。如果这是您想要的,那么请明确并使用CROSS JOIN。 -
交叉联接在这里也返回相同的答案,我只是转储数据
-
SELECT sum(s.Card_10) ,sum(p.Card_10) FROM Sales_Table s CROSS JOIN Purchase_Table p -----------同4和40