+ -
当前位置:首页 → 问答吧 → 一个视图问题

一个视图问题

时间: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

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'

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

为什么不用where筛选器?

作者: sql_sf   发布时间: 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

SQL code

SELECT a.ID, a.DelTag, a.Type, a.SendTime, a.ReadTime,b.Name 
FROM a 
INNER JOIN b ON a.ID = b.ID AND a.Type = '1'

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

where a.Type = '1'

放在left join 是无效时,这是限制表2是否显示的条件

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

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

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

写一个蛋疼但对楼主可能觉得是对的方法(不用where)
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 
inner join a t on a.id=t.id AND a.Type = '1'

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

SQL code
SELECT a.ID, a.DelTag, a.Type, a.SendTime, a.ReadTime,b.Name 
FROM a 
INNER JOIN b 
ON a.ID = b.ID AND a.Type = '1'

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