2016-09-27 77 views
0

我有两个表:LEFT JOIN不会返回ULL值

AppWindowsEvent:

CREATE TABLE [AppWindowsEvent] 
(
[idAppWindowEvent]  INT IDENTITY(1,1) 
, [idAppWindow]   INT 
, [idEventType]   INT 
, [Order]    INT 
, CONSTRAINT PK_idAppWindowEvent PRIMARY KEY ([idAppWindowEvent]) 
, CONSTRAINT FK_idAppWindowEvent_AppWindow FOREIGN KEY ([idAppWindow]) REFERENCES [AppWindow]([idAppWindow]) 
, CONSTRAINT FK_idAppWindowEvent_EventType FOREIGN KEY ([idEventType]) REFERENCES [EventType]([idEventType]) 
) 

事件:

CREATE TABLE [Event]  
(
[idEvent] [INT] IDENTITY(1,1) NOT NULL 
, [idEventType] [INT] NOT NULL 
, [idEntity] [INT] NOT NULL 
, CONSTRAINT PK_IdEvent PRIMARY KEY([idEvent]) 
, CONSTRAINT [FK_Event_EventType] FOREIGN KEY([idEventType]) REFERENCES [EventType] ([idEventType]) 
) 

当我运行此查询:

SELECT 
* 
FROM 
AppWindowsEvent AWE 
LEFT JOIN Event E ON AWE.idEventType = E.idEventType 
WHERE 
AWE.idMill = 1 
AND AWE.idAppWindow = 1 
ORDER BY 
AWE.[Order] ASC 

结果:不返回空值。

当我运行此

SELECT 
* 
FROM 
AppWindowsEvent AWE 
LEFT JOIN Event E ON AWE.idEventType = E.idEventType 
AND E.[idEntity] = 1234 
WHERE 
AWE.idMill = 1 
AND AWE.idAppWindow = 1 
ORDER BY 
AWE.[Order] ASC 

结果:返回空值。

注意: 我需要整套已经配置好的数据,如果你想要一组特定的事件,可以通过事件表的特定idEntity和结果回报很好,但只适用于idEntity,在我的情况下,我需要所有idEntity。

+6

请问您的键盘有一些心理问题是力量它在输入标题时卡在大写锁定键上? –

+1

我不明白如何让'ON'标准_限制更多应该导致'NULL'值突然出现。 –

+0

- 请尝试以下 SELECT * 代码FROM AppWindowsEvent AWE LEFT JOIN事件e ON AWE.idEventType = E.idEventType \t和E [特征] = 1234 \t AND AWE.idMill = 1 \t AND AWE .idAppWindow = 1 ORDER BY AWE。[订单] ASC – AeyJey

回答

0

试试这个

SELECT * 
FROM 
AppWindowsEvent AWE 
LEFT JOIN Event E ON AWE.idEventType = E.idEventType 
WHERE 
AWE.idMill = 1 
AND AWE.idAppWindow = 1 
AND E.[idEntity] = 1234 
ORDER BY 
AWE.[Order] ASC 

或者,如果你不希望出现在第二个表空勇气,你可以使用内部联接,而不是左加入

SELECT * 
FROM 
AppWindowsEvent AWE 
Inner JOIN Event E ON AWE.idEventType = E.idEventType 
AND E.[idEntity] = 1234 
WHERE 
AWE.idMill = 1 
AND AWE.idAppWindow = 1 
ORDER BY 
AWE.[Order] ASC