2010-11-08 83 views
4

的不同和彼此一列,我多列的表格,但我只需要2 選擇ID,部門從TBL選擇ID

,如果我想使用不同的 - 我該怎麼做呢? 這是行不通的: 選擇IDM不同部門從TBL

+1

您尚未提供足夠的答案信息。你應該發佈一些樣本數據。 – Fionnuala 2010-11-08 10:18:58

回答

3

使用以下方法來獲取不同的行:

select distinct id, department 
from tbl 

但是,你不能簡單地得到不同的部門,如果一些部門有多個標識的 - 你需要找出你想要的多個Id中的哪一個(max?min?別的?)。

+0

我希望獨特的只是部門,我需要的其餘列將avilable使用後,所以我需要得到ID列 – 2010-11-08 09:38:19

+0

@YGJ - 每個部門只有一個ID與它相關聯,或多個? – Oded 2010-11-08 09:40:47

+0

我看不出這個答案有什麼問題,因爲缺乏來自OP的信息,這是最好的。 – Fionnuala 2010-11-08 10:18:20

0

將一組通過解決您的問題?

select id, department from tbl group by id 
+0

不,不在msaccess(或mysql以外的數據庫)中。建議的SQL在遵循GORUP BY的SQL標準的數據庫中引發錯誤。 – Unreason 2010-11-08 09:45:34

+0

對不起,我打算寫:select id,tbl group by id,department – 2010-11-08 09:56:51

2

DISTINCT需要對所有出於同樣的原因,爲什麼GROUP BY需要包括所有列列的工作(不具有聚合函數對它們進行操作),並且是在情況下,你想適用DISTINCT以下結果集

id department 
---------------- 
1  one 
2  one 
3  one 
4  two 

那麼即使SELECT id, DISTINCT department FROM table_name被允許(這是一些數據庫,例如MySQL能夠由部門辦團,不包含在GROUP BY ID),那麼你最終會undefined情況:

id department 
---------------- 
?  one 
4  two 

應該去什麼而不是? - 1,2或3?

2
SELECT * FROM Table c1 
WHERE ID = (SELECT MIN(ID) FROM Table c2 
    WHERE c1.department = c2.department)