У меня есть три таблицы.Query on Sql Joins
tblLink: (LinkId, LINKNAME, GroupID,, SubGroupId)
GroupID и SubGroupId является внешним ключом в tblGroup и tblSubGroup
tblGroup: (GroupID, GroupName)
tblSubGroup: (SubGroupId, SubGroupName)
in tblLink SubGroupId разрешено Null, но GroupId является обязательным.
Я хочу принести LINKNAME, GroupName, SubGroupName для каждого LinkId в tblLink
Я написал запрос
ВЫБРАТЬ L.LinkName, G.GroupName, SG.SubGroupName ОТ tblLink L
Соединение слева
tblSubGroup SG
ON
(L.SubGroupId = SG.SubGroupId)
Inner Регистрация
tblGroup G
ON
(L.GroupId = G.GroupId)
Если нет подгруппы для некоторого LinkId Я хочу, чтобы показать NotExist вместо Null
Вы можете использовать COALESCE для этого (вместо ISNULL), просто делает ваш запрос более переносимым. – Technowise
@Technowise: остерегайтесь неявного преобразования типа данных, тогда ... если SubGroupName является varchar (5) или char (50), его можно передать в varchar (8), чтобы соответствовать литералу NotExist. С ISNULL он остается в зависимости от типа данных SubGroupName. Portable SQL = изменение контракта? – gbn
@Technowise, что вы подразумеваете под переносным здесь. Что такое COALESCE, пожалуйста, проработайте. –