[請益] 多資料表條件篩選的建立技巧

作者: jami520 (我的生命因你而發光)   2014-03-23 08:49:11
像下面這財經網站,裡面表列許多條件可供篩選
( 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條件.....
作者: MOONRAKER (㊣牛鶴鰻毛人)   2014-03-24 19:04:00
看不出來這兩個範例有什麼差別?
作者: jami520 (我的生命因你而發光)   2014-03-25 05:31:00
一個是根據勾選的條件再加入LEFT JOIN,另一個是把全部條件都預先LEFT JOIN起來,後續才跟對勾選的條件做where只是想說效能上面應該會有很大的影響,不曉得一般都是怎樣來製作這樣多條件的篩選方法才會達到快速有效率的查詢呢?
作者: MOONRAKER (㊣牛鶴鰻毛人)   2014-03-25 12:11:00
阿就試啊 很慢就拆啊 EXPLAIN阿某表如果只有某些條件用到 那當然是必要時再join就好了

Links booklink

Contact Us: admin [ a t ] ucptt.com