引用 | 編輯
chris710908
2008-06-21 23:44 |
樓主
▼ |
||
x0
想請教各位~在做考題的時候發現sql語法的問題題目有兩個關聯如下 供應商(供應商代號.供應商名稱,城市) 專案提供零件(供應商代號,零件代號,專案代號,數量) 題目:找出所有參與j1或j2專案的供應商名稱 參考解答: select 供應商名稱 from 供應商 s where s.供應商代號 IN ( select 供應商代號 from 專案供應零件 p where p.專案代號 IN('j1','j2') ); 個人解答: select 供應商名稱 from 供應商 s, 專案供應零件, p where s.供應商代號=p.供應商代號 and p.專案代號 IN ('j1','j2'); 請問我的解答這樣寫可以嗎? 我覺得參考解答好像寫的太複雜? 請教高手~謝謝 x0
|
引用 | 編輯
chris710908
2008-06-22 00:20 |
2樓
▲ ▼ |
是兩個資料表
因為我要列出供應商名稱 但是專案這個欄位在專案提供零件這個資料表中 所以要找出所有參與j1或j2專案的供應商名稱 就是列出有參與這兩個其中一個專案的供應商 x0 |
引用 | 編輯
月光
2008-06-22 00:26 |
3樓
▲ ▼ |
這是我的解法...與你的差不多^^
SELECT * FROM 資料表1名稱 s LEFT JOIN 資料表2名稱 p ON p.供應商代號欄位名稱=s.供應商代號欄位名稱 WHERE 專案代號欄位名稱 IN('j1','j2') x0 |
引用 | 編輯
chris710908
2008-06-22 00:31 |
4樓
▲ ▼ |
原來是如此~版大是先join起來~where那邊就比較精簡了
那表示為必要按照解答的寫對吧 感覺怪怪的 感謝版大喔!!!真迅速~ x0 |
引用 | 編輯
月光
2008-06-22 00:34 |
5樓
▲ ▼ |
下面是引用chris710908於2008-06-22 00:31發表的 : 這就是寫程式好玩之處啦...沒有兩個人寫的程式會一模一樣,要達到同樣效果有人可以寫到很精簡,有人卻繞了一大圈,永遠無標準解答...所以大家一起努力吧^^ x0 |
引用 | 編輯
chris710908
2008-06-22 00:53 |
6樓
▲ |
感謝版主
我會加油的! x0 |