2010-01-04 136 views
2

我有三個表。查詢Sql加入

tblLink:(LINKID,LINKNAME,GroupId的,SubGroupId)
groupId和SubGroupId在tblGroup和tblSubGroup
tblGroup外鍵:(GroupId的,組名)
tblSubGroup:(SubGroupId,SubGroupName)

in tblLink允許SubGroupId爲空但GroupId爲強制。

我想在tblLink
獲取鏈接名稱,組名,SubGroupName爲每LINKID 我寫了一個查詢

SELECT L.LinkName,G.GroupName,SG.SubGroupName FROM tblLink大號
左聯接
tblSubGroup SG
ON
(L.SubGroupId = SG.SubGroupId)
內部聯接
tblGroupģ
ON
(L.GroupId = G.GroupId)

如果對於一些LINKID我要顯示的辦法抹殺代替空

回答

4
SELECT 
    L.LinkName, G.GroupName, 
    ISNULL(SG.SubGroupName, 'NotExist') AS SubGroupName 
FROM 
    Link L 
.... 
+3

無子組你可以使用COALESCE來做到這一點(而不是ISNULL),只是讓你的查詢更加便攜。 – Technowise 2010-01-04 12:27:31

+1

@Technowise:注意隱式數據類型轉換然後...如果SubGroupName是varchar(5)或char(50),它可以轉換爲varchar(8)以匹配文字NotExist。使用ISNULL時,它保持按照SubGroupName數據類型。便攜式SQL =更改合同? – gbn 2010-01-04 12:30:18

+0

@Technowise,你是什麼意思,便攜式在這裏。什麼是COALESCE,請詳細說明。 – 2010-01-04 12:31:11