mysql表聯合union優化為表連線join

2021-05-18 08:32:11 字數 720 閱讀 2830

話說之前用php寫的乙個統計跑得好好的,突然一天不出資料了,追其原因出在sql語句上,由於資料量增大加上伺服器老舊,執行sql語句的時候出現記憶體不足的提示,遂決定優化sql語句使其不產生臨時表。需求清晰,下面舉例說明:

原sql語句:

select count( distinct md5 ) from active as a

where a.md5 in ( select md5 from alive_20091220 union 

select md5 from alive_20091221 union 

select md5 from alive_20091222 union 

select md5 from alive_20091223 )

優化後的sql語句:

select count( distinct a.md5 ) from active as a

left outer join alive_20091220 as b on a.md5 = b.md5

left outer join alive_20091221 as c on a.md5 = c.md5

left outer join alive_20091222 as d on a.md5 = d.md5

left outer join alive_20091223 as e on a.md5 = e.md5

呵呵,去試試吧。從未滿足,因為不斷突破。

mysql聯合查詢union

將多條查詢結果合併成乙個結果 查詢語句1 union all 查詢語句2 查詢部門編號 90或郵箱包含a的員工資訊 select from employees where email like a or department id 90 或者 select from employees where ...

MySQL 基礎 UNION 聯合查詢

聯合查詢與連線查詢不同,通過union 關鍵字,我們可以將多個查詢語句一同執行並將結果集展示出來,不涉及到任何關聯關係。union 的含義是 聯合,並集,結合 在mysql中可以將多個查詢語句的結果合併成乙個結果集,在mysql 不支援full outer join 的情況下,彌補了 並集 查詢的短...

MySql 高階查詢 union 聯合查詢

1.union 聯合查詢 將多個查詢結果集合到一起 2.語法 select 查詢語句 union select 查詢語句 union select 查詢語句 union select 查詢語句 3.例子 查詢學生資訊和班級資訊,集合到一起 select class id,class name,cla...