關鍵在C要被JOIN兩次:
SELECT w.a1,y.c2,x.b2,z.c2
FROM a as w
JOIN b as x
ON x.b1=w.a1
JOIN c as y
ON y.c1=w.a1
JOIN c as z
ON z.c1=x.b2
基本上這樣做是對的
補充一下 kaowoei 的回答
如果 a 主件沒有子件的時候
透過 join(inner join) 時 主件的料件 就會被濾掉 不會顯示出來
如果 a 的主件要全部顯示
需用 left join(子件的部份位顯示為 NULL)
SELECT w.a1,y.c2,x.b2,z.c2
FROM a as w
LEFT JOIN b as x
ON x.b1=w.a1
LEFT JOIN c as y '如果主料件都存在 C 基本檔,則可以不用做 LEFT
ON y.c1=w.a1
LEFT JOIN c as z '此 JOIN 是 for B 使用,所以要加 LEFT
ON z.c1=x.b2
不曉得對不對, 參考看看吧
select c1.子件品名
from a1
inner join b1
inner join c1
on b1.子件品號=c1.子件品號
on a1.主件品號=b1.主件品號
where a1.主件品號=xxxxx