2014-11-25 23 views
0

我有一個只有4行的表。如何選擇某行中的數據從不重複的行 - SQL

FIRST LAST AGE 
luke david 42 
jester prince 32 
luke mike 16 
sean paul 22 

我想只選擇那些名字從不重複的行。所以我需要的結果是

FIRST LAST  AGE 
jester prince 32 
sean paul  22 

SQL查詢應該忽略所有重複名字的行。簡單的不同查詢在這裏不起作用,因爲它只是刪除多個條目。我想要一個可以刪除重複名字的所有行的查詢。

回答

1

TRY

SELECT * FROM `tbl_name` GROUP BY(`name`) HAVING COUNT(`name`) = 1 
+0

我試過了,它不起作用。它給我3行作爲回報。其中一人在第一欄中露面。 – MJB 2014-11-25 05:20:22

+0

它返回所有行。 – MJB 2014-11-25 05:33:11

+0

不,我測試過。它運作良好 – diEcho 2014-11-25 05:33:39

0

您可以使用組通過,如果不同不起作用

SELECT * FROM Table GROUP BY FIRST 
+0

它不會刪除正在重複的名稱。 – MJB 2014-11-25 05:46:37

0

你可以使用一個NOT IN條款,如:

SELECT * FROM table1 
WHERE first NOT IN (
    SELECT first FROM table1 
    GROUP BY first 
    HAVING COUNT(*) > 1 
) 

內部查詢查找所有重複名字,然後使用NOT IN子句刪除那些重複的名字f從最終的結果。

+0

謝謝。這個也可以工作,但有點複雜。 – MJB 2014-11-25 05:41:11

0
select FIRST, LAST, AGE 

from MY_TABLE 

group by FIRST 
HAVING count(FIRST) = 1 
+0

count_name從哪裏來? – MJB 2014-11-25 05:30:21

+0

你可以通過count_name來完成。我更新我的代碼。 – 2014-11-25 05:32:16

+0

謝謝。我認爲這是我需要的。 – MJB 2014-11-25 05:37:56