我得去登记和定价。
CREATE TABLE [dbo].[Register](
[RegisterID] [int] NULL,
[GroupID] [int] NULL,
[TestID] [int] NULL)
CREATE TABLE [dbo].[Price](
[ID] [int] NULL,
[GroupID] [int] NULL,
[Price] [bigint] NULL,
[Status] [bit] NULL)
假设信息与上图相似,请考虑以下查询
SELECT Price.*
FROM Register RIGHT OUTER JOIN Price ON Register.GroupID = Price.GroupID
WHERE (Price.Status = 1) AND (Register.TestID = 50)
输出将显示如下。
我的期望是price表的第一行和第二行将被显示。那么,我的错误在哪里?我应该如何更改查询以获得正确的输出?
1条答案
按热度按时间j7dteeu81#
限制
Register
当前出现在WHERE
条款必须移至ON
子句以获得所需的行为:请注意,更典型的情况是,您可以通过左连接来表达上述内容: