PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   SQL 的問題 (https://www.pcdvd.com.tw/showthread.php?t=793595)

student 2008-05-11 11:26 PM

select S_name from student where s# in (select s# distinct from Take group by s# having count(s#) > 4)

不能修改了 補充一下
我覺得還是樓主用的方法速度會比較快一點!!

Devil 2008-05-11 11:32 PM

引用:
作者student
select S_name from student where s# in (select s# distinct from Take group by s# having count(s#) > 4)

不能修改了 補充一下
我覺得還是樓主用的方法速度會比較快一點!!

既然已經group by 就沒必要distinct 了 :agree:

student 2008-05-12 12:11 AM

引用:
作者Devil
既然已經group by 就沒必要distinct 了 :agree:


哈~ 說得是!! 一時沒發現!! :)

s0510510 2008-05-12 09:30 AM

不好意思,小弟又有問題了
1.如果要將R,S做Left Outer Join
在SQL中表示應該是R Left Outer Join S 還是 R Left Join S
小弟在書上看到兩種不同表示方法,還是兩種方法都可以
2.那如果要做Left Outer theat Join
在SQL中表示應該是R Left Outer Join on S 嗎?
不好意思,小弟問題有點多,請大大幫忙一下,感恩

elase 2008-05-12 11:15 AM

引用:
作者s0510510
不好意思,小弟又有問題了
1.如果要將R,S做Left Outer Join
在SQL中表示應該是R Left Outer Join S 還是 R Left Join S

SQL Server 中 Outer 關鍵字可以省略

Devil 2008-05-12 12:22 PM

引用:
作者s0510510
不好意思,小弟又有問題了
2.那如果要做Left Outer theat Join
在SQL中表示應該是R Left Outer Join on S 嗎?

這個問題我看不懂
LEFT JOIN後面接的是TABLE(可以是子資料查詢)
ON後面接的是連結的條件式
簡單一點的方法可以用ACCESS去新增一個查詢(有圖形化工具)
再將他顯示為SQL語法
另外每一種DB的JOIN語法也都有點差異

student 2008-05-12 01:26 PM

引用:
作者Devil
這個問題我看不懂
LEFT JOIN後面接的是TABLE(可以是子資料查詢)
ON後面接的是連結的條件式
簡單一點的方法可以用ACCESS去新增一個查詢(有圖形化工具)
再將他顯示為SQL語法
另外每一種DB的JOIN語法也都有點差異


select s_name from s left join r on s.s# = r.s#

表示抓出s資料表的資料, 並且利用 s.s# 與 r.s# 運算是將 r 資料表與s 資料表結合
但是抓出來的資料以s資料表為主, r資料表只是將符合的資料join上去

guliano 2008-05-12 02:44 PM

select A.S_name from Student A join (select S#, count(*) from Take group by S# having count(*) >= 5) B on A.S# = B.S#

s0510510 2008-05-14 04:02 PM

引用:
作者elase
SQL Server 中 Outer 關鍵字可以省略

不好意思發因為事情耽擱,這麼晚才上來回復
原來在SQL中,Outer Join的Outer可以省略
這樣小弟清楚了,感恩

s0510510 2008-05-14 04:14 PM

引用:
作者Devil
這個問題我看不懂
LEFT JOIN後面接的是TABLE(可以是子資料查詢)
ON後面接的是連結的條件式
簡單一點的方法可以用ACCESS去新增一個查詢(有圖形化工具)
再將他顯示為SQL語法
另外每一種DB的JOIN語法也都有點差異

先跟大大說聲抱歉,小弟語言表達能力不好,造成大大的困擾
小弟會這樣問的原因是因為考試的題目這樣問
要將Relational Algebra 用SQL指令寫出來
所以想說針對Relation Algerbra在SQL指令整理出來
在整理過程中發現Outer Join在SQL中的指令有兩種
一種是Left Join,另外一種是Left Outer Join
所以才會發問第一個問題

發現這問題之後,小弟又想到還有一個指令
Left Outer Theta Join在SQL中為R LEFT OUTER JOIN ON S(書上面這樣表示)
所以我在想如果這裡的Outer可以拿掉嗎?
我想是不是我想太多,想到走火入魔@@

聽到大大說有SQL很多版本,這樣每個版本指令都有差異
簡單的說就是要看是在那本版用
那考試這樣出,不是為難考生嗎?
誰叫小弟是考生,就盡力準備
多謝大大的回復,感恩


所有的時間均為GMT +8。 現在的時間是01:57 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。