假设这两个表A,并B有ds他们的分区键.
方法1
SELECT *
FROM A JOIN B ON A.userid=B.userid
WHERE A.ds='2014-01-01' AND B.ds='2014-01-01'
Run Code Online (Sandbox Code Playgroud)
方法2
SELECT *
FROM (
SELECT * FROM A WHERE A.ds='2014-01-01'
) JOIN (
SELECT * FROM B WHERE B.ds='2014-01-01'
) ON
A.userid=B.userid
Run Code Online (Sandbox Code Playgroud)
第二个查询会更快吗?
我不知道如何WHERE和JOIN在蜂巢的作品.是where施加子句源表之前,加入可能的(只要子句仅包含一个表的别名,如上述的那些)时,或者是它总是表的连接之后才施加(例如A.userid > B.userid具有后的施加加入)?