作者jami520 (我的生命因你而發光)
看板PHP
標題[請益] 多資料表條件篩選的建立技巧
時間Sun Mar 23 08:49:11 2014
像下面這財經網站,裡面表列許多條件可供篩選
(
http://www.wantgoo.com/hottipsearch.aspx )
我想問的是這些條件分散在其他資料表當中,是根據勾選的項目來做集合動作嗎?(ex1)
還是先把全部資料聯集載出,再根據不同條件去做where篩選呢?例如ex2
(((ex1)))
單純A條件
SELECT A.data1 FROM (SELECT data1 FROM A1) A where A條件
除了A條件之外,再勾選B條件
SELECT A.data1 FROM (SELECT data1 FROM A1) A
LEFT JOIN (SELECT FROM B1) B where A條件 and B條件
((( ex2 )))
但這樣效能是否會相對不好?
SELECT A.data1 FROM (SELECT data1 FROM A1) A
LEFT JOIN (SELECT FROM B1) B
LEFT JOIN (SELECT FROM C1) C ..........where A條件 and B條件.....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.70.174.131
→ MOONRAKER:看不出來這兩個範例有什麼差別? 03/24 19:04
→ jami520:一個是根據勾選的條件再加入LEFT JOIN,另一個是把全部條 03/25 05:31
→ jami520:件都預先LEFT JOIN起來,後續才跟對勾選的條件做where 03/25 05:32
→ jami520:只是想說效能上面應該會有很大的影響,不曉得一般都是怎樣 03/25 05:32
→ jami520:來製作這樣多條件的篩選方法才會達到快速有效率的查詢呢? 03/25 05:33
→ MOONRAKER:阿就試啊 很慢就拆啊 EXPLAIN阿 03/25 12:11
→ MOONRAKER:某表如果只有某些條件用到 那當然是必要時再join就好了 03/25 12:13