2012年5月20日 星期日

【SQL】多個資料表的SELECT搜尋


( 上為一個模擬的關聯資料表 )


如果只要顯示以下3個欄位

order.name food.name  還有  drink.name





整體語法:

SELECT 欄位
FROM 資料表1  INNER JOIN  資料表2  ON 資料表1的欄位 = 資料表2的欄位



INNER JOIN→連接2個資料表
ON→連接2個欄位




分析一下大原則:



SELECT 欄位1,欄位2,...
FROM 飲料資料表  INNER JOIN( 點餐資料表 INNER JOIN 食物資料表 ON 點餐資料表欄位 = 食物資料表欄位 ) ON 飲料資料表欄位 = 點餐資料表欄位



  1. 先連結 點餐資料表食物資料表
  2. 再連結 點餐資料表欄位食物資料表欄位
  3. 飲料資料表 再與 點餐資料表 連接
  4. 再連接 飲料資料表欄位點餐資料表欄位


SQL搜尋語法如下:


SELECT order.name , food.name , drink.name
FROM drink INNER JOIN
(order INNER JOIN food ON order.foodid = food.foodid ) 
ON drink.drinkid = order.drinkid




總結:


  1. 資料表連結誰先誰後都無所謂,但是一定要符合關聯資料表的原則
  2. 多個資料表連結,必須先連結其中2個,剩下的再逐一連結




撰寫:zap
參考:SQL SERVER 2008R2 資料庫設計實務(碁峯)

沒有留言:

張貼留言