【发布时间】:2015-11-13 08:40:03
【问题描述】:
我有以下架构:
*Project*
ID(PK) NAME
1 Alpha
2 Bravo
3 Charlie
4 Delta
*Employee*
ID(PK) NAME
1 Kevin
2 Mike
3 Eric
4 Ira
5 Peter
*Project Assignment*
ID(PK) ProjectID(FK) EmployeeID(FK)
1 1 1
2 1 2
3 2 2
4 2 3
5 3 3
6 3 4
7 1 3
我想编写查询:
1) 显示所有分配的项目及其团队成员。
期望的输出:
Project TeamMembers
Alpha Eric
Alpha Kevin
Alpha Mike
Bravo Eric
Bravo Mike
Charlie Eric
Charlie Ira
2) 仅显示 Alpha 项目及其团队成员,并按降序显示团队成员的姓名。
期望的输出:
ID TeamMember
Alpha Mike
Alpha Kevin
Alpha Eric
最简单的查询会是什么样子?
附加问题:
查询每个项目的团队成员数量是多少?
期望的结果:
+-------------+-------------+
| ProjectName | NumMembers |
+-------------+-------------+
| Alpha | 3 |
| Bravo | 2 |
| Charlie | 2 |
+-------------+-------------+
【问题讨论】:
-
你需要了解表关系。你的问题太模糊了。从我所见,很难实现您的查询,只是您的表关系映射很差。请以更有效的方式重新设计您的桌子。
标签: sql sql-server join