Re: [請益] 如何在同一個table中取來自兩個不同資긠…

看板PHP作者 (遇見偶然)時間16年前 (2009/08/28 10:53), 編輯推噓6(600)
留言6則, 6人參與, 最新討論串2/2 (看更多)
謝謝高手回答! 不過我想問的是如果A、B各有5個欄位,其中有一個是共同欄位, 我想從一個table中搜尋A資料表的一個欄位,且是B資料表的共同欄位。 主要是要搜尋A資料表,但是也需要部份該B資料表中其他欄的資料。 這樣可以作到嗎?謝謝回答。 ※ 引述《yuleen123 (.......................)》之銘言: : ※ 引述《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: 163.21.227.31

08/28 10:54, , 1F
可以
08/28 10:54, 1F

08/28 11:50, , 2F
人家回文的這麼辛苦,你好歹也研究一下
08/28 11:50, 2F

08/28 14:46, , 3F
可以. 不過麻煩你多K點書,多用點腦子想想怎麼作吧..
08/28 14:46, 3F

08/28 23:03, , 4F
妳說的不就是上一篇回文告訴你的答案了嘛?inner join
08/28 23:03, 4F

08/31 01:30, , 5F
這個基本的不會做? 你資料庫是怎麼設計的?
08/31 01:30, 5F

09/02 10:14, , 6F
上一篇已經給你答案了,你就用 inner join
09/02 10:14, 6F
文章代碼(AID): #1AbqQIrR (PHP)
文章代碼(AID): #1AbqQIrR (PHP)