Re: [SQL ] Join使用請教
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
討論串 (同標題文章)