台灣最大程式設計社群網站
線上人數
1369
 
會員總數:244714
討論主題:188792
歡迎您免費加入會員
討論區列表 >> MySQL >> 請問如何下才能 重複資料只抓取一筆
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問如何下才能 重複資料只抓取一筆
價值 : 0 QP  點閱數:20144 回應數:3

樓主

卡謬
初學者
62 14
170 19
發送站內信

以下是我ㄉ語法結構

SELECT distinct S1.column1,
S1.column2 
FROM table1 AS S1 
LEFT JOIN table2 AS S2 ON S2.join_column = S1.join_column
LEFT JOIN table3 AS S3 ON S3.join_column2 = S1.join_column2
WHERE 1 AND S1.column = '1' ORDER BY S1.column ASC

可是最後秀出來ㄉ資料 並沒有將重複ㄉ部分拿掉


但是這樣 只抓取一個欄位 就可以將重複ㄉ部分拿掉
SELECT distinct S1.column1
FROM table1 AS S1 
LEFT JOIN table2 AS S2 ON S2.join_column = S1.join_column
LEFT JOIN table3 AS S3 ON S3.join_column2 = S1.join_column2
WHERE 1 AND S1.column = '1' ORDER BY S1.column ASC


請問一下 是MySQL 語法有規定使用 distinct 只能抓取一個欄位嗎?



本篇文章發表於2004-05-24 13:23
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小華
檢舉此回應
大大您誤會distinct 的用法了  
distinct 是將你 select 的所有欄位資料相同的只出現一筆
select  distinct a1 from tmp_table
這時只要是a1 欄位中資料相同的就只會出現一筆囉!
但如果您是下 select distinct a1,a2 from tmp_table時
那就是a1欄位的值 + a2欄位的值相同的只會出現一筆
瞭解了嗎!
本篇文章回覆於2004-05-24 13:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

卡謬
檢舉此回應
恩恩 那我了解ㄌ

那如果是 只要 S1.column1 重複ㄉ拿掉

而其餘ㄉ欄位 能然接著 S1.column1 顯現出來 有可能嗎
本篇文章回覆於2004-05-24 13:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

卡謬
檢舉此回應
呵呵 原來用 Group BY 就可以解決這問題ㄌ~

SELECT S1.column1,
S1.column2 
FROM table1 AS S1 
LEFT JOIN table2 AS S2 ON S2.join_column = S1.join_column
LEFT JOIN table3 AS S3 ON S3.join_column2 = S1.join_column2
WHERE 1 AND S1.column = '1' 
GROUP BY S1.column1
ORDER BY S1.column ASC

我還以為 GROUP BY  不是這樣用ㄉ勒~
本篇文章回覆於2004-05-24 15:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.