我有以下表格:SQL - 多表连接并选择条件的第一条记录
Projects (ID, Name, ManagerUser_ID)
Users(ID, Name, Active)
Delegates(ProjectID, UserID, OrderNo)
的ManagerUser_ID
是项目经理的项目,并且是用户表的链接。用户,但是可以是Inactive
。因此,Delegates表是定义可以访问项目数据的用户的多对多表。
我需要的是为Active
的项目选择第一个代表,假设经理为Inactive
。 OrderNo
字段指定代表的顺序(1代表第一位)。
一些样本数据:
Project
1, Project1, 2
2, Project2, 4
3, Project3, 1
Users
1, Joe, true
2, John, false
3, Dave, true
4, Bob, false
Delegates
1, 4, 1
1, 1, 2
1, 3, 3
2, 2, 1
2, 4, 2
2, 3, 3
所以我查询的输出需要显示:
Project1, Joe
Project2, Dave
Project3, Joe
显示项目和用户对每一个项目,如果ManagerUser_ID
是不活动的地方,然后选择User
in Delegates
最低OrderNo
即Active
。
不幸的是,这并没有收回项目的第一个活跃代表。这列出了该项目的所有用户以及订单号。需要在某个地方进行调用,将结果集限制为处于活动状态的最低OrderNo。 – Simon 2011-04-11 08:50:24