多表連接時,主從表的確定

 

       在進行多表的聯接查詢前,我們需要對多表進行相關的處理,比方說確定主從關係,建立外鍵,聯接時確定中間表等操作.

        一般情況下,建表時先建主表,再建從表,那怎麼確定主從關係呢,進一步建立外鍵約束?

        比方說,有三個表,customers表(customerid--pk,customername),

orders表(orderid--pk,customerid--fk,orderdate)和

orderitems表(orderitemid---pk,bookid,quantity,orderid---fk),

        從這張表來看,orders表的customerid列爲外鍵,他來自表customers的主鍵列customerid,因此這就是我們常說的外鍵引用主鍵,被引用的表爲主表,引用的表爲從表.即customers表爲主表,orders表爲從表;同樣的道理下,orderitems表中的orderid列爲外鍵,來自於(引用)表orders的主鍵列orderid,故針對這兩個表來說,orders表爲主表,而orderitems表爲從表.

         對於刪表的順序,剛好與建表的次序相反,即對於上面三個表來說,先刪表orderitems,再刪表orders,最後才能刪掉customers表.

        在進行多表聯接的查詢操作時,我們可以以orders表作爲中間表,因爲他和其他兩個表都有關係.即:

select *

          from orders a join customers c

                        on a.customerid=c.customerid

         join orderitem t

                      on t.orderid=a.orderid

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章