首先把事情的来龙去脉,我试图写SQL Server 2005的下面上搜索我的表结构加入 - SQL Server 2005中
Schema1.Table1
GUID
1
2
3
Schema2.Table2
GUID MAINTITLE
1 Water Monkies
2 Water Doggies
Schema3.Table3
GUID MAINTITLE
3 Water Hyrdas
预期的行为是用户将搜索“水”,我要取回所有的GUID在Schema1.Table1与Schema2.Table2和Schema3.Table3条目匹配它们其中GUID在列表中,MAINTITLE LIKE“%水份%”
我必须使用JOINS来实现这一点。
什么我迄今所做的是:
select Schema1.Table1.GUID
from Schema1.Table1 JOIN Schema2.Table2 ON Schema1.Table1.GUID = Schema2.Table2.GUID
JOIN Schema3.Table3 ON Schema1.Table1.GUID = Schema3.Table3.GUID
但这返回AND后的结果,这让我没有结果
然后我试图
select distinct Schema1.Table1.GUID
from Schema1.Table1, Schema2.Table2, Schema3.Table3
where (Schema2.Table2.GUID=Schema1.Table1.GUID OR Schema3.Table3.GUID=Schema1.Table1.GUID
) AND (Schema2.Table2.MAINTITLE like '%water%' OR Schema3.Table3.MAINTITLE like '%water%')
但由于这是一个隐含的连接,它返回table2的所有行,其中table3的主键也像水一样。
我可以帮一下吗?
你的CTO“恨联合查询”?一份新工作的时间。 – 2010-12-03 07:12:11