SQL - 如何编写查询以根据 ID 检索名称,其中名称和 ID 存储在不同 table
SQL - How to write a query to retrieve names based on IDs where names and IDs are stored in different table
我正在使用 asp.net
开发 Web 应用程序
我有三个表,其中包含以下字段:
用户详细信息:
用户 ID(pk) |名字 |姓氏
项目:
项目ID |项目名称 |创建者 ID |预算所有者 ID | SpocID |最后一个用户 ID |状态 ID
注意:所有ID均指上表和下表中的userID和statusID。
3.Statuses:
状态ID |状态描述
资源分配(更新):
分配ID |项目编号 | UserID(项目映射到谁)。
我需要以这种方式在网格视图中显示项目的详细信息:
项目ID |项目名称 |创建者名称 |预算所有者姓名 | SpocName 姓氏 |状态描述
我想在 gridview 中显示其 ID 的相应名称(名字+姓氏)。
如何使用 SQL 或 linq to entities 编写它?。请帮忙
更新:第二个查询:
我想根据他分配到的项目显示所选资源的相同详细信息。
您需要为每个需要名称或描述的列使用 JOIN
:
SELECT
proj.ProjectID,
proj.ProjectName,
created.FirstName + ' ' + created.LastName as CreatedByName,
budget.FirstName + ' ' + budget.LastName as BudgetOwnerName,
spoc.FirstName + ' ' + spoc.LastName as SpocName,
lastUsr.FirstName + ' ' + lastUsr.LastName as LastUserName,
status.StatusDescription
FROM projects proj
INNER JOIN UserDetails created ON proj.CreatedByID = created.UserID
INNER JOIN UserDetails budget ON proj.BudgetOwnerID = budget.UserID
INNER JOIN UserDetails spoc ON proj.SpocID = spoc.UserID
INNER JOIN UserDetails lastUsrON proj.LastUserID = lastUsr.UserID
INNER JOIN Statuses status ON proj.StatusID = status.StatusID
以上查询假定您的所有 ID
字段将始终填充数据。如果其中任何一个可以是NULL
,则应将INNER JOIN
更改为LEFT JOIN
我正在使用 asp.net
开发 Web 应用程序我有三个表,其中包含以下字段:
用户详细信息:
用户 ID(pk) |名字 |姓氏
项目:
项目ID |项目名称 |创建者 ID |预算所有者 ID | SpocID |最后一个用户 ID |状态 ID
注意:所有ID均指上表和下表中的userID和statusID。
3.Statuses:
状态ID |状态描述
资源分配(更新):
分配ID |项目编号 | UserID(项目映射到谁)。
我需要以这种方式在网格视图中显示项目的详细信息:
项目ID |项目名称 |创建者名称 |预算所有者姓名 | SpocName 姓氏 |状态描述
我想在 gridview 中显示其 ID 的相应名称(名字+姓氏)。
如何使用 SQL 或 linq to entities 编写它?。请帮忙
更新:第二个查询: 我想根据他分配到的项目显示所选资源的相同详细信息。
您需要为每个需要名称或描述的列使用 JOIN
:
SELECT
proj.ProjectID,
proj.ProjectName,
created.FirstName + ' ' + created.LastName as CreatedByName,
budget.FirstName + ' ' + budget.LastName as BudgetOwnerName,
spoc.FirstName + ' ' + spoc.LastName as SpocName,
lastUsr.FirstName + ' ' + lastUsr.LastName as LastUserName,
status.StatusDescription
FROM projects proj
INNER JOIN UserDetails created ON proj.CreatedByID = created.UserID
INNER JOIN UserDetails budget ON proj.BudgetOwnerID = budget.UserID
INNER JOIN UserDetails spoc ON proj.SpocID = spoc.UserID
INNER JOIN UserDetails lastUsrON proj.LastUserID = lastUsr.UserID
INNER JOIN Statuses status ON proj.StatusID = status.StatusID
以上查询假定您的所有 ID
字段将始终填充数据。如果其中任何一个可以是NULL
,则应将INNER JOIN
更改为LEFT JOIN