生活札記 首頁 生活札記
提供一個可以讓大家無拘無束的討論園地
 
相簿相簿   常見問題常見問題   搜尋搜尋   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 


同時多Table特定條件搜尋與left join的使用時機

 
發表新主題   回覆主題    生活札記 首頁 -> Database Server
上一篇主題 :: 下一篇主題  
發表人 內容
luckyhoo



註冊時間: 2006-07-19
文章: 447

發表發表於: 星期一 十月 30, 2006 1:33 pm    文章主題: 同時多Table特定條件搜尋與left join的使用時機 引言回覆

Sorry, 因為使用SQL指令指定多個Table之間的搜尋條件, 並同時搜尋多個Table的不同欄位資料, 這種搜尋方式的專有名詞是啥我不知道, 所以姑且稱之 "同時多Table特定條件搜尋", 若有誤請指正勿見怪, 謝謝 Very Happy


有以下三個Table
product Table, 欄位 productid(產品id), name(產品名稱), price(產品單價)
sales Table, 欄位 productid(產品id), salenum(銷售數量), saletime(銷售時間)
storage Table, 欄位 productid(產品id), storewhere(庫存放置位置)


假設說, 每一個產品不同時間有不同的銷售量, 那要找出某一特定產品的所有銷售量可以用以下的SQL語法:
代碼:
select product.productid, product.name, product.price, sales.salenum, sales.saletime
from product
left join sales on product.productid=sales.productid
where 1
order by product.productid, sales.saletime, sales.salenum

像這種一對多的狀況就不適合使用 "同時多Table特定條件搜尋"


假設說, 每一項產品只會有一個存放位置, 那要找出某一特定產品的存放位置可以用以下的SQL語法:
代碼:
select product.productid, product.name, product.price, storage.storewhere
from product, storage
where product.productid=storage.productid


代碼:
select product.productid, product.name, product.price, storage.storewhere
from product
left join storage on product.productid=storage.productid

像這種一對一的狀況使用 "同時多Table特定條件搜尋" 感覺上就會比較直覺
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    生活札記 首頁 -> Database Server 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作