作者adrianshum (Alien)
看板Database
标题Re: [SQL ] 不知道有没有这种写法...
时间Wed Dec 12 20:23:55 2007
※ 引述《LPH66 (IWH68S0XZ8M89)》之铭言:
: ※ 引述《sui623 (超尴尬...)》之铭言:
: : 请问这个要怎麽改才会文法正确..还是有什麽变通的办法..
: : SELECT A1.`id`,A1.`name`,A2.`chinese_name` ,A1.`jobs_type` ,A2.`email` ,
: : A1.`cellphone` FROM `address_book` A1,`phd_student` A2 `( OR
: : `ncu_ms_student` A2 OR `ncu_phd_student` A2 OR `ms_student` A2 ) WHERE
: : A1.`id`=A2.`num`
: SELECT ... FROM `adderss_book` A1,
: (
: SELECT * FROM `phd_student`
: UNION ALL
: SELECT * FROM `ncu_ms_student`
: UNION ALL
: SELECT * FROM `ncu_phd_student`
: UNION ALL
: SELECT * FROM `ms_student`
: ) A2
: WHERE ...
: 我猜你是要A2在这四个表中去找
: 所以用个子查询把四个表一次抓回来 令为A2
建议四个分开 join 再做 union all
现在把所有东西都拿出来才 join, 一来
subquery 的 result 很大, 二来 subquery 该
用不到 index
所以这样做应该会比较好:
select ... from address_book a1, phd_student
where balbalbal
union all
select ... from address_book a1, ncu_ms_student
where balbalblaba
union all
........
Alien
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.155.236.82