作者flowwinds (..)
站内Database
标题[SQL ] left join + 子查询
时间Mon Nov 29 18:33:11 2010
大家好,
如果打算left join两个subquery, 能不能在第二个子查询中使用到第一个子查询的结果
类似下面这样的写法
SELECT * FROM
(SELECT A.PID, A.Name FROM A WHERE A.column='123' ) t1 //subquery 1
^^^^^^^希望在第二个子查询中使用到它
LEFT OUTER JOIN
(SELECT * FROM B WHERE B.FID IN(t1.PID) AND ...) //subquery 2
^^^^^^^ 希望在这用到
情况是 subquery 2 中的 TABLE2 有 FK(FID) 指到 TABLE1 的PK(PID)
只是如果subquery 2 没有以subquery 1的结果先过滤 PID, 资料量会很大而造成处理时间
很长, 且subquery 2 中的FID不需要有在 subquery 1 处理结果 PID 外的
我在SQL Server 2008上测试是不行, 所以只能在 subquery 2中再重写一次类
subquery 1的查询去过滤..
不知道有无其他作法, 谢谢~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.9.6.2