2016-09-27 104 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