+ -
当前位置:首页 → 问答吧 → 为什么这个视图a.type='1'这个条件无效

为什么这个视图a.type='1'这个条件无效

时间:2011-11-25

来源:互联网

SELECT a.ID, a.DelTag, a.Type, a.SendTime, a.ReadTime,b.Name FROM  
 a LEFT OUTER JOIN b ON a.ID = b.ID AND a.Type = '1'
a表
id type
1 1
2 1
3 2 
b表  
id name
1 张三
2 李四
3 王五
只想在视图中显示type=1的信息,在不加wherer有前提下怎么实现?
问题:a.type='1'这个条件无效,过滤不出a表type=1的值

作者: Q1293920990   发布时间: 2011-11-25

SELECT a.ID, a.DelTag, a.Type, a.SendTime, a.ReadTime,b.Name FROM  
 a LEFT OUTER JOIN b ON a.ID = b.ID 
where a.Type = '1'
注意连接方式!

作者: AcHerat   发布时间: 2011-11-25

SQL code
SELECT a.ID, a.DelTag, a.Type, a.SendTime, a.ReadTime,b.Name FROM   
 a LEFT OUTER JOIN b ON a.ID = b.ID where a.Type = '1'

作者: fredrickhu   发布时间: 2011-11-25

引用 2 楼 fredrickhu 的回复:

SQL code
SELECT a.ID, a.DelTag, a.Type, a.SendTime, a.ReadTime,b.Name FROM
a LEFT OUTER JOIN b ON a.ID = b.ID where a.Type = '1'



顶。。。
where a.Type = '1'

作者: leamonjxl   发布时间: 2011-11-25

LEFT OUTER JOIN b ON 表连接条件唯一..

作者: HJ_daxian   发布时间: 2011-11-25

SELECT a.ID, a.DelTag, a.Type, a.SendTime, a.ReadTime,b.Name FROM  
 a LEFT OUTER JOIN b ON a.ID = b.ID  
where a.Type = '1'

left join 后面表示连接条件 ; where后面是查询条件!我是这么理解的!

作者: petermei   发布时间: 2011-11-25

注意on筛选器
on 是第2步
left outer是第三步 on帅选后还是要添加外部行的
where 筛选器是在添加外部行后再过滤的

作者: sql_sf   发布时间: 2011-11-25

LEFT JOIN 还不用Where语句,没有办法过滤查询结果的

作者: songguangqin   发布时间: 2011-11-25

加入where a.type='1'就可以了。

作者: lzd_83   发布时间: 2011-11-25

引用 6 楼 sql_sf 的回复:
注意on筛选器
on 是第2步
left outer是第三步 on帅选后还是要添加外部行的
where 筛选器是在添加外部行后再过滤的

注意select语句中left join 和where的区别
left join 会把on 筛选去掉的外部行再添回来,where过滤最终结果

作者: pengxuan   发布时间: 2011-11-25