日期:2014-05-18 浏览次数:20398 次
select * from tableA union select * from tableB where colId=3 or parentcolId=3
------解决方案--------------------
当然不相同啊!
select * from tableA
union
select * from tableB where colId=3 or parentcolId=3
这里是tableA的条数+tableB 满足条件的条数
select * from view2 where colId=3 or parentcolId=3
这里因为建视图了!把A,B当成一个表了
查出来的是A,B集合里面满足条件的!
------解决方案--------------------
可以通过添加一表值函数来处理:
CREATE FUNCTION [dbo].[selectByTableBID] ( @colId int, @parentcolId int ) RETURNS TABLE AS RETURN( select * from tableA union select * from tableB where colId=@colId or parentcolId=@parentcolId )
------解决方案--------------------
我感觉是那个or的问题
sql中的或逻辑 如果Or前面为真 会直接忽略后面的语句
------解决方案--------------------
这种简单查询你就用sql语句吧,用视图的话无法满足你的要求,因为你的条件不是查询两个表的共同条件