Re: [SQL ] Join使用請教

看板Database作者 (可愛小孩子)時間12年前 (2013/07/19 20:55), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
select C.ID, A.NAME, B.JOB from B right join ( select id.ID, job.JOB from (select distinct ID from B) id, (select distinct JOB from B) job ) C on B.ID = C.ID and B.JOB = C.JOB inner join A on C.ID = A.ID order by C.JOB asc,C.ID asc 因為手邊沒有 db 可測 心理預期 B right join C 以後如下(請您檢驗): B C ======================= ID JOB ID JOB -- ---- -- ---- 01 規劃 01 規劃 02 規劃 02 規劃 nul nul 03 規劃 01 安裝 01 安裝 02 安裝 02 安裝 03 安裝 03 安裝 01 測試 01 測試 nul nul 02 測試 03 測試 03 測試 ※ 引述《gss112196 (輕飄飄的雲)》之銘言: : A表 : ID NAME : ---------- : 01 PETER : 02 JOHN : 03 MARK : B表 : ID JOB : ---------- : 01 規劃 : 01 安裝 : 01 測試 : 02 規劃 : 02 安裝 : 03 安裝 : 03 測試 : 簡單,但是想破頭了,請各位提供想法或方法, : A表是名字主檔,B表是每個ID對應的工作, : 請問要怎麼樣做JOIN或是subquery才能讓B表每一種JOB中的ID(也就是SELECT ID : GROUP BY JOB)都對應一次A表。 : 結果(A+B) : B表中只有三種JOB:規劃、安裝、測試 : ID NAME JOB : ------------------- : 01 PETER 規劃 : 02 JOHN 規劃 : 03 MARK NULL : 01 PETER 安裝 : 02 JOHN 安裝 : 03 MARK 安裝 : 01 PETER 測試 : 02 JOHN NULL : 03 MARK 測試 : P.S 有用Select * FROM a LEFT JOIN b ON a.id = b.id 但沒辦法出現NULL -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.14.52
文章代碼(AID): #1HwJTSEX (Database)
文章代碼(AID): #1HwJTSEX (Database)