我有一個用戶信息表和標籤信息表。標籤表基本上有一個TagType,一個UserID和一個標籤值。我基於UserID加入了兩個表。在連接表上進行篩選,但也包括已連接和篩選的表爲空的數據?
現在我想查詢所有用戶提供值的列表與TagType標籤= 1
SELECT [user].name, [tag].value
FROM user LEFT OUTER JOIN
tag ON user.id = tag.userid
WHERE [tag].type = 1
到目前爲止,一切都很好。這很好。
我現在的問題是,我也希望看到用戶在我的查詢中沒有Tag Type = 1的標籤。在這種情況下,它應該只返回NULL。現在這些用戶不會被查詢返回。
如果我擺脫了'WHERE [tag] .id = 1',那麼它們會顯示出來,但它會爲每個用戶返回幾行 - 每個現有標籤類型一行 - 但我不希望這樣。
在某種意義上,我想:
Column 1: User Name
Column 2: Tag value of Tag Type 1 if it exists, otherwise NULL
我被困在那裏。我不知道如何讓其他用戶進入,但保留其他標籤類型。
非常感謝。奇蹟般有效!我希望是一件容易的事情。 – MarcoK 2013-03-07 18:29:53
@MarcoK - 因爲你已經有了'LEFT JOIN'這個最合乎邏輯的解決方案。否則,你會需要像'CASE'子句。 – 2013-03-07 18:34:28