2009-10-24 100 views
0

我有一個表,user_quotes,與場quotes_idquotes_userquotes_descquotes_datequotes_status,並quotes_location。在此quotes_user允許重複條目。當我執行我的查詢時,我試圖避免重複條目quotes_user。所以我執行這樣的查詢,鮮明MySQL查詢返回的所有記錄

select distinct quotes_user from user_quotes; 

此查詢僅返回quotes_user字段。我如何使用distinct quotes_user檢索所有其他記錄。

我曾嘗試與這些之後,

select distinct quotes_user, quotes_desc, quotes_date, quotes_status from user_quotes; 

它不迴避quotes_user的重複。

如果我使用,

select distinct quotes_user, * from user_quotes; 

我得到的MySQL錯誤,

你有一個錯誤的SQL語法;檢查與您的MySQL服務器版本相對應的手冊,以便在'* FROM user_quotes附近使用正確的語法。

如何使用同一個表中的單個列選擇不同的記錄來獲取所有記錄?我在該字段中存儲電子郵件地址。數據類型爲varchar

注意:請不要建議我其他類型的團體或其他。我需要知道如何通過僅使用distinct來檢索記錄。

+0

是否要爲每個quotes_user檢索一行報價?就像每個用戶或者第一個用戶最近的報價一樣,是這樣的嗎?或者是否要爲每個quotes_user計算報價或平均報價值? – 2009-10-24 07:05:12

+0

@Dale我想避免quotes_user的重複。結果可能會根據quotes_user而有所不同。謝謝。 – Paulraj 2009-10-24 07:53:31

回答

2

除了已經說過的內容之外,應該強調的是,當您選擇多列時,DISTINCT關鍵字不能爲爲單個列提供不同的結果。你會得到明顯的,在你的情況,4列。你正在觀察的是DISTINCT的預期標準行爲。

+0

好的。你可以用我的例子詳細說明,我怎樣才能以任何其他方式使用disitinct來實現所有記錄?通過使用連接像? – Paulraj 2009-10-24 07:27:46

+0

無論如何,我無法真正想到使用'DISTINCT'實現你想要的。這可以通過'GROUP BY'很容易地完成。你爲什麼如此重視使用「DISTINCT」? – 2009-10-24 08:16:14

+0

哦..很好。我沒有理由爲什麼我正在尋找這個獨特的問題。當我通過使用GROUP BY得到結果時,我只想知道如何使用不同的結果來獲得結果。如果有人向我提供一些鏈接或教程,以深入瞭解不同的內容,將對我有所幫助。謝謝。 – Paulraj 2009-10-24 09:16:08

0

聽起來像quotes_user應該是一個外鍵,如user_id大概是你的用戶表。然後,您可以通過user_id查詢user_quotes,返回該用戶的所有報價。您的前端可以很好地格式化每個用戶的所有引用,它聽起來不像是一個MySql問題。

2

你說要檢索等領域,但你沒有指定 SQL是如何知道哪些值以檢索等多個領域,爲quotes_user每個不同的值。

要顯示出你想要我的意思是,看看這個例子:

+-------------+---------------+ 
| quotes_user | email_address | 
+-------------+---------------+ 
| user1  | email1  | 
| user1  | email2  | 
| user2  | email3  | 
| user2  | email4  | 
| user2  | email5  | 
| user3  | email6  | 
+-------------+---------------+ 

現在,如果你只是quotes_user,輸出顯然是:

+-------------+ 
| quotes_user | 
+-------------+ 
| user1  | 
| user2  | 
| user3  | 
+-------------+ 

但是,如果你想要的其他領域,你需要決定,例如,email1email2user1行。

也許你想要的是連接其他領域的價值在一起。在這種情況下,我建議使用GROUP_CONCAT集合函數和GROUP BY quotes_user

雖然我不確定爲什麼要避免使用GROUP BY。也許如果你能解釋這一點,我們可以幫助更多。

+0

嘿,你是用手寫這些ASCII表還是有工具可以生成它們? – 2009-10-24 07:00:51

+0

感謝您的回覆。當我與小組一起嘗試時,我得到了結果。但以同樣的方式爲什麼我不能得到我已經嘗試過的獨特結果。我怎樣才能達到相同的結果,完成使用組與獨特。 – Paulraj 2009-10-24 07:05:30

+0

你不能。閱讀我的答案。 – 2009-10-24 07:09:34