線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1475
推到 Plurk!
推到 Facebook!

這段SQL該怎麼寫?

答題得分者是:fatmoon1
capyu
一般會員


發表:17
回覆:23
積分:7
註冊:2005-01-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-02-12 11:37:10 IP:60.248.xxx.xxx 訂閱
請問一下,如裹我有下列的一個資料表

id name
--- --------
1 A
2 B
1 C
2 D
3 E

我想透過SQL 尋找出 每一個唯一個id的一個ROW 例如

id name
--- --------
1 A
2 B
3 E

不知SQL指令該怎麼寫?
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-02-12 11:42:10 IP:218.161.xxx.xxx 訂閱
你是要找每一個ID的第一個Name嗎?

這樣可以用子查詢
id name
--- --------
1 A
2 B
1 C
2 D
3 E

SELECT ID,(SELECT name FROM tabl1 t2 WHERE t2.id = t1.id LIMIT 1) FROM table1 t1 GROUP BY id
不過效率有點慢就是。
------
月夜 光明 藍更愁
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-02-12 12:37:28 IP:59.124.xxx.xxx 未訂閱
SQL Server
<textarea class="sql" rows="10" cols="60" name="code"> SELECT ID,(SELECT top 1 name FROM table3 t2 WHERE t2.id = t1.id) FROM table3 t1 GROUP BY id </textarea>

Fishman
------
Fishman
capyu
一般會員


發表:17
回覆:23
積分:7
註冊:2005-01-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-02-12 13:19:22 IP:60.248.xxx.xxx 訂閱
不好意思
我是要列出整筆資料,不是單傳只要其中一個欄位
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-02-12 16:21:33 IP:59.124.xxx.xxx 未訂閱
你的 Database & 版本?


Fishman

------
Fishman
fatmoon1
初階會員


發表:3
回覆:29
積分:36
註冊:2004-05-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-02-13 15:10:19 IP:61.63.xxx.xxx 訂閱
綜合以上說法,可以歸類成下列用法,如此不管有多少欄位都可以
SELECT
id,
(SELECT TOP 1 name FROM tablename WHERE (id = t1.id)) AS Expr1,
(SELECT TOP 1 field2 FROM tablename WHERE (id = t1.id)) AS Expr2,
(SELECT TOP 1 field3 FROM tablename WHERE (id = t1.id)) AS Expr3,
(SELECT TOP 1 field4 FROM tablename WHERE (id = t1.id)) AS Expr4
FROM tablename AS t1
GROUP BY id

------
才疏學淺
系統時間:2024-04-20 5:17:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!