我的表格为PO
,PR
,MR
。他们每个人都相同 client id
,但不同 ID
。如何使输出像这样?
ID_PO | ID_PR | ID_MR
1 - -
2 - -
3 - -
- A -
- B -
- C -
- - I
- - II
- - III
- - IV
我尝试过使用JOIN,但数据显得太多了
答案 0 :(得分:0)
您可以使用内部联接合并结果。像这样的东西
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的多个条目。
答案 1 :(得分:0)
假设我理解正确,您可能最好使用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
...