Re: [請益] 如何在同一個table中取來自兩個不同資긠…
看板PHP作者yuleen123 (.......................)時間16年前 (2009/08/28 09:13)推噓0(0推 0噓 0→)留言0則, 0人參與討論串1/2 (看更多)
※ 引述《shin168 (遇見偶然)》之銘言:
: 在一個table中可以讀取sql中的同一個資料表的資料,
: 但是如果要在同一個table中讀取來自兩個不同的資料表資料,
: 需要怎麼寫?
: 又因為我的兩個資料表有同一個連結的變數,可以用什麼方法讀到
: 我要的資料表中的資料嗎?
: 煩請高手回覆一下,謝謝!
有兩種方法
假設你有兩張表 A、B
A 和 B 中有共同的欄位 ID
方法一:
1. select * from A inner join B on A.ID = B.ID
2. select * from A left join B on A.ID = B.ID
3. select * from A right join B on A.ID = B.ID
inner join 和 outter join 的差別在於
inner join 要兩張表有 match 的資料才會撈出來
例如 A 裡面的 ID 欄位有 1,3,5,7,9 五筆資料
B 裡面的 ID 欄位有 2,3,4,6,7,8 五筆資料
則第一條 SQL 只會把 ID 為 3,7 的資料撈出來
第二條 SQL 會把 ID 為 1,3,5,7,9 的資料撈出來
但是 B 裡面沒有 1,5,9 三筆 ID 的資料, 所以 B 中相關的欄位會設定成 null
也就是第二條 SQL 以 A 資料表為主, B 資料表沒有 match 到的部份會變成 null
第三條 SQL 同第二條, 只是第三條 SQL 以 B 資料表為主
方法二
select * from A,B where A.ID = B.ID
這個方法相當於方法一中的 inner join
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.171.133.80
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章