我有以下表格: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