Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询Sql联接_Sql_Sql Server_Sql Server 2005 - Fatal编程技术网

查询Sql联接

查询Sql联接,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,我有三张桌子 tblLink:(LinkId,LinkName,GroupId,SubGroupId) GroupId和SubGroupId是tblGroup和tblSubGroup中的外键 tblGroup:(GroupId,GroupName) tblSubGroup:(子组ID,子组名称) 在tblLink中,SUBSUBID允许为Null,但GroupId是必需的 我想为tblLink中的每个LinkId获取LinkName、GroupName和SubName 我写了一个问题 从tblL

我有三张桌子

tblLink:(LinkId,LinkName,GroupId,SubGroupId)
GroupId和SubGroupId是tblGroup和tblSubGroup中的外键
tblGroup:(GroupId,GroupName)
tblSubGroup:(子组ID,子组名称)

在tblLink中,SUBSUBID允许为Null,但GroupId是必需的

我想为tblLink中的每个LinkId获取LinkName、GroupName和SubName
我写了一个问题

从tblLink L中选择L.LinkName、G.GroupName、SG.SubGroupName
左连接
tblSubGroup SG

(L.subgroup id=SG.subgroup id)
内部联接
TBL组G

(L.GroupId=G.GroupId)


如果某个LinkId没有子组,我想显示NotExist而不是Null

,您可以使用COALESCE(而不是ISNULL)来实现这一点,只需使查询更具可移植性即可。@Technowise:注意隐式数据类型转换,然后。。。如果subgroup name是varchar(5)或char(50),则可以将其强制转换为varchar(8)以匹配文本NotExist。使用ISNULL时,它将按照SubName数据类型保持。Portable SQL=更改合同?@Technowise,你这里说的Portable是什么意思。什么是联合,请详细说明。
SELECT
    L.LinkName, G.GroupName, 
    ISNULL(SG.SubGroupName, 'NotExist') AS SubGroupName
FROM
    Link L
....