有这么简单的SQL查询应该这么慢的原因吗?

Jac*_*ack 6 sql

此查询大约需要一分钟才能生成结果:

SELECT MAX(d.docket_id), MAX(cus.docket_id) FROM docket d, Cashup_Sessions cus
Run Code Online (Sandbox Code Playgroud)

然而这一个:

SELECT MAX(d.docket_id) FROM docket d UNION MAX(cus.docket_id) FROM Cashup_Sessions cus
Run Code Online (Sandbox Code Playgroud)

立即给出结果.我看不出第一个人要做的事情会花费更长的时间 - 我的意思是他们只是检查最大的一个数字列表然后返回它们.还有什么可以做我看不到的?

我通过Java在MS Access数据库上使用jet SQL.

Mla*_*dic 13

第一个是在两个表之间进行交叉连接而第二个不是.
这里的所有都是它的.


Nen*_*vic 9

第一个使用笛卡尔积来形成源数据,这意味着第一个表中的每一行都与第二个表中的每一行配对.之后,它搜索源以找出列中的最大值.

第二个不连接表.它只是从第一个表中找到最大值,从第二个表中找到最大值,然后返回两行.