用于从三个表检索数据的SQL查询
我有三张桌子:用于从三个表检索数据的SQL查询,sql,Sql,我有三张桌子: SELECT t1.ProjectId, t1.companyUserID, COALESCE(t2.CompanyClientId, 'NA'), COALESCE(t3.CompanyClientName, 'NA') FROM tbl_ProjectsUsers t1 LEFT JOIN tbl_Projects t2 ON t1.ProjectId = t2.ProjectId LEFT JOIN tbl_Company_
SELECT t1.ProjectId,
t1.companyUserID,
COALESCE(t2.CompanyClientId, 'NA'),
COALESCE(t3.CompanyClientName, 'NA')
FROM tbl_ProjectsUsers t1
LEFT JOIN tbl_Projects t2
ON t1.ProjectId = t2.ProjectId
LEFT JOIN tbl_Company_Client t3
ON t2.CompanyClientId = t3.CompanyClientId
WHERE t1.companyUserID = <some_value>
tbl\U投影仪用户
ProjectId
companyUserID
ProjectId
CompanyClientId
tbl_项目
ProjectId
companyUserID
ProjectId
CompanyClientId
tbl_公司客户
CompanyClientName
CompanyClientId
如何使用@companyUserID从三个表中检索ProjectID、CompanyClientID和CompanyClientName您可以在三个表之间进行连接:
SELECT t1.ProjectId,
t1.companyUserID,
COALESCE(t2.CompanyClientId, 'NA'),
COALESCE(t3.CompanyClientName, 'NA')
FROM tbl_ProjectsUsers t1
LEFT JOIN tbl_Projects t2
ON t1.ProjectId = t2.ProjectId
LEFT JOIN tbl_Company_Client t3
ON t2.CompanyClientId = t3.CompanyClientId
WHERE t1.companyUserID = <some_value>
选择t1.ProjectId,
t1.公司编号:,
合并(t2.CompanyClientId,'NA'),
合并(t3.CompanyClientName,'NA')
来自tbl_投影仪t1
左连接tbl_项目t2
关于t1.projectd=t2.projectd
左加入tbl_公司客户t3
在t2.CompanyClientId=t3.CompanyClientId上
其中t1.companyUserID=
您可以在三个表之间进行联接:
SELECT t1.ProjectId,
t1.companyUserID,
COALESCE(t2.CompanyClientId, 'NA'),
COALESCE(t3.CompanyClientName, 'NA')
FROM tbl_ProjectsUsers t1
LEFT JOIN tbl_Projects t2
ON t1.ProjectId = t2.ProjectId
LEFT JOIN tbl_Company_Client t3
ON t2.CompanyClientId = t3.CompanyClientId
WHERE t1.companyUserID = <some_value>
选择t1.ProjectId,
t1.公司编号:,
合并(t2.CompanyClientId,'NA'),
合并(t3.CompanyClientName,'NA')
来自tbl_投影仪t1
左连接tbl_项目t2
关于t1.projectd=t2.projectd
左加入tbl_公司客户t3
在t2.CompanyClientId=t3.CompanyClientId上
其中t1.companyUserID=
希望这有帮助
以下是您请求的解决方案:
Declare @CompanyUserID int = 10 --no idea what the data type is but i assume an integer.
Select
u.CompanyUserID
, p.ProjectID
, c.CompanyClientID
, c.CompanyClientName
FROM
tbl_ProjectUsers u
JOIN tbl_Projects p on u.ProjectID = p.ProjectID
JOIN tbl_CompanyClient c on p.CompanyClientID = c.CompanyClientID
WHERE
u.CompanyUserIDin (@CompanyUserID)
如果更改变量号(10),它将返回不同的结果。我想你把它设为Int,但也可以是字符串
如果它是一个字符串,那么应该使用以下类似的方法
Declare @CompanyUserID varchar(max) = 'UserID'
您将需要更具体地确定连接类型,但在T-SQL中,这对我很有用。我建议这一个使用更高的内部联接或左联接,但是使用justjoin就足够了
发帖-我看到你更新了你的帖子,所以现在它对3个表有意义了希望这有帮助
以下是您请求的解决方案:
Declare @CompanyUserID int = 10 --no idea what the data type is but i assume an integer.
Select
u.CompanyUserID
, p.ProjectID
, c.CompanyClientID
, c.CompanyClientName
FROM
tbl_ProjectUsers u
JOIN tbl_Projects p on u.ProjectID = p.ProjectID
JOIN tbl_CompanyClient c on p.CompanyClientID = c.CompanyClientID
WHERE
u.CompanyUserIDin (@CompanyUserID)
如果更改变量号(10),它将返回不同的结果。我想你把它设为Int,但也可以是字符串
如果它是一个字符串,那么应该使用以下类似的方法
Declare @CompanyUserID varchar(max) = 'UserID'
您将需要更具体地确定连接类型,但在T-SQL中,这对我很有用。我建议这一个使用更高的内部联接或左联接,但是使用justjoin就足够了
帖子-我看到你更新了你的帖子,所以现在它对3个表有意义了