作者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
1F:→ MOONRAKER:看不出来这两个范例有什麽差别? 03/24 19:04
2F:→ jami520:一个是根据勾选的条件再加入LEFT JOIN,另一个是把全部条 03/25 05:31
3F:→ jami520:件都预先LEFT JOIN起来,後续才跟对勾选的条件做where 03/25 05:32
4F:→ jami520:只是想说效能上面应该会有很大的影响,不晓得一般都是怎样 03/25 05:32
5F:→ jami520:来制作这样多条件的筛选方法才会达到快速有效率的查询呢? 03/25 05:33
6F:→ MOONRAKER:阿就试啊 很慢就拆啊 EXPLAIN阿 03/25 12:11
7F:→ MOONRAKER:某表如果只有某些条件用到 那当然是必要时再join就好了 03/25 12:13