|
|
|||||
|
|||||
| 樓主 卡謬
發送站內信 |
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
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
| 回覆 |
| 如要回應,請先登入. |