2016-01-17 90 views
-2

我想要做的是從table1中選擇每個不同的column1值,然後從上面返回的那些行中選擇所有列。這可能嗎?MYSQL嵌套從同一個表中選擇查詢

我到目前爲止,然而,什麼都不會返回:

SELECT * FROM (SELECT DISTINCT column1 FROM table1)

我想過把一個獨特/不同的限制條款where查詢中:

SELECT * FROM table1 WHERE some_unique_determiner column1

任何想法,我可以去實現所需的輸出?

+0

樣本數據和預期結果將有助於我們更好地理解。我相信你想在每個組中找到第一個/最後一個記錄 –

+0

我不明白你想在這裏實現什麼!對我來說,似乎你所描述的結果與'select * from table'相同# – Shadow

+0

對於問題的提出方式,我表示歉意,但我是一個初學者。但我認爲我已經達到了預期的產出,感謝@ VR46,他指出我的方向正確。我需要對其進行分組 – ethane

回答

-1

在你的下一個職位,這將是更好,如果你發佈你的表結構,輸入所需出來放那麼這將是我們更容易瞭解。

如果我沒理解,有兩個選項之一:

要麼你有重複,要消除他們,讓您的正確的查詢應該是

select distinct COLUMNa,COLUMNb,COLUMNc... ETC 

將下降重複(即整行都是一樣的)。

或者你想消除具有相同列1的行,並且如果所有其餘部分相同或不相同則無關緊要。 在這種情況下,您需要告訴我們您希望保留哪一個結果,最新的一個,舊的,隨機的ETC ..因爲現在不可能讓您選擇所有列後面的查詢不同的,因爲所有的重複將像這樣返回:

SELECT * FROM TABLE WHERE COLUMN1 IN(SELECT DISTINCT COLUMN1 FROM TABLE) 

這是一個錯誤的查詢,因爲它沒有做任何事情。

+0

將來會做。一個簡單的'... GROUP BY column1'完成了返回不同的'column1'值的技巧 – ethane

+0

@ VR46我知道,這就是我說的,它不正確,因爲它沒有做任何事情,它等於select * from表。我想向他解釋他的請求現在完全正確 – sagi

0

好,回答我自己的問題。我需要做的是按column1對數據進行分組,而不使用嵌套查詢。非常感謝@ VR46的幫助。

SELECT * FROM table1 GROUP BY column1

返回的所有列從每個唯一值從COLUMN1

+1

您正在使用明確記錄爲產生「不確定」結果的MySQL(mis)功能。你不應該在'select'中有沒有聚合的列,也不應該在'group by'中。 –