select m.* , b.bmmc from
(
select * from A where ywzt = 1
) m
left join b
on m.dwid = b.dwid
--
SELECT A.*, B.BMMC FROM A LEFT JOIN B ON A.DWID = B.DWID where A.YWZT = 1
---------
感觉2个执行计划是一样的。。。
[Quote=引用 2 楼 dawugui 的回复:]
最好写成这样:
select m.* , b.bmmc from
(
select * from A where ywzt = 1
) m
left join b
on m.dwid = b.dwid
[/Quote]
如果是多个表最好写成这样.
如果只有两个表写成我一楼的形式.
[Quote=引用楼主 eFainter 的帖子:]
SELECT A.*, B.BMMC FROM A LEFT JOIN B ON A.YWZT = 1 AND A.DWID = B.DWID
这样查询出来的记录就等于A的记录数,相当于A.YWZT = 1这个条件没有起作用,请问LEFT连接能不能把A表进行相应的过滤呢?
[/Quote]
SELECT A.*, B.BMMC FROM A LEFT JOIN B ON A.DWID = B.DWID where A.YWZT = 1