我有一個名爲PO
,PR
,MR
的表。他們每個人都有相同client id
,但不同ID
。我怎樣才能使輸出像這樣?將多行組合成一個查詢
ID_PO | ID_PR | ID_MR
1 - -
2 - -
3 - -
- A -
- B -
- C -
- - I
- - II
- - III
- - IV
我使用JOIN試過,但數據出現了太多的
我有一個名爲PO
,PR
,MR
的表。他們每個人都有相同client id
,但不同ID
。我怎樣才能使輸出像這樣?將多行組合成一個查詢
ID_PO | ID_PR | ID_MR
1 - -
2 - -
3 - -
- A -
- B -
- C -
- - I
- - II
- - III
- - IV
我使用JOIN試過,但數據出現了太多的
假設我理解正確的話,你可能最好關閉使用union all
:
select id_po, id_pr, id_mr
from (
select id id_po, null id_pr, null id_mr, client_id from po
union all
select null, id, null, client_id from pr
union all
select null, null, id, client_id from mr
) t
group by client_id
或許代替group by
- where client_id = x
...
沒錯,謝謝:) –
可以使用內部連接結合您的結果。事情是這樣的
SELECT * FROM PO
INNER JOIN PR ON PO.client_id = PR.client_id
INNER JOIN MR ON MR.client_id = PR.client_id
但由於INNER JOIN
是基於笛卡爾乘積,你可能會得到PO和PR的多個條目,如果表之間的關係是一個一對多。
通過編寫select語句 - 很多教程上在線如何做到這一點 –
@EdHeal我試過使用select和join,但數據變得太多了 –
爲什麼不發佈你到目前爲止嘗試過的東西? –