内容简介:http://stackoverflow.com/questions/8758223/sql-server-multiple-table-joins-with-a-where-clause
我正在使用SQL Server,我很难想从我想要的SELECT查询中获取结果.我尝试加入不同的订单和使用子查询,但没有什么是我想要的方式.拿这个具有不同版本级别的软件应用程序的例子,可能安装在人民币计算机上.
我需要执行一个附加的地方,但由于某种原因,我无法得到我想要的结果.
也许我正在看我的数据错误,我不太确定为什么我不能让这个工作.
申请表
ID Name 1 Word 2 Excel 3 Powerpoint
软件表(包含不同应用程序的版本信息)
ID ApplicationID Version 1 1 2003 2 1 2007 3 2 2003 4 2 2007 5 3 2003 6 3 2007
软件计算机连接表
ID SoftwareID ComputerID 1 1 1 2 4 1 3 2 2 4 5 2
电脑桌
ID ComputerName 1 Name1 2 Name2
我想要一个查询,我可以运行我选择一个特定的计算机来显示什么软件版本和应用程序,但我也希望它显示什么应用程序它没有(版本将是一个空的,因为它没有那个软件就可以了)
SELECT Computer.ComputerName, Application.Name, Software.Version FROM Computer JOIN Software_Computer ON Computer.ID = Software_Computer.ComputerID JOIN Software ON Software_Computer.SoftwareID = Software.ID RIGHT JOIN Application ON Application.ID = Software.ApplicationID WHERE Computer.ID = 1
我想要以下结果集
ComputerName Name Version Name1 Word 2003 Name1 Excel 2007 Name1 Powerpoint NULL
但我只是得到
Results ComputerName Name Version Name1 Word 2003 Name1 Excel 2007
我认为RIGHT JOIN将包括应用程序表中的所有结果,即使它们与计算机无关.我缺少/做错了什么?
使用LEFT JOIN或RIGHT JOIN时,无论您将滤镜放在“WHERE”还是“JOIN”中,都有所不同.
看到这个答案我刚才写的一个类似的问题:
What is the difference in these two queries as getting two different result set?简而言之:
>如果把它放入WHERE子句(就像你所做的那样),与该计算机无关的结果被完全过滤掉
>如果你把它放在JOIN中,那么与查询结果不相关的结果就出现在查询结果中,只有NULL值
– >这是你想要的
http://stackoverflow.com/questions/8758223/sql-server-multiple-table-joins-with-a-where-clause
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- SQL中 where 子句和having子句中的区别
- MySQL中包含IN子句的语句是怎样执行的
- Laravel MySQL如何以与whereIn子句相同的顺序排序结果
- c# – 使用表达式树创建完全动态的where子句并在IQueryable上执行
- Studio 3T中的新功能:支持SQL SELECT DISTINCT,WHERE子句中的JSON对象及更多
- 大数据领域开源工具有哪些
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Release It!
Michael T. Nygard / Pragmatic Bookshelf / 2007-03-30 / USD 34.95
“Feature complete” is not the same as “production ready.” Whether it’s in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to......一起来看看 《Release It!》 这本书的介绍吧!