基本上,例如,如果你有3个表:
表A
表B1
表B2
并且所有3个表中的数据以2种方式之一连接:
表A&表B1
OR
表A&表B2
在表格中连接它们是最佳做法,为什么?
1表如:
加入表
|Table A |Table B1 |Table B2 |
|tableA_ID|tableB1_ID|null |
|tableA_ID|null |tableB2_ID|
或每个联接有2个单独的表
表A和B1加入
表A和B2加入
还是有另一种更好的方法吗?
答案 0 :(得分:1)
连接表取决于表之间的字段和关系。 它还取决于您正在寻找的输出 - 基于此,您将需要加入表
答案 1 :(得分:0)
我认为你想要一个left join
,其实两个:
select a.tableA_ID, b1.tableB1_ID, b2.tableB2_ID
from a left join
b1
on a.tableA_ID = b1.tableA_ID left join
b2
on a.tableA_ID = b2.tableA_ID ;
答案 2 :(得分:0)
您有点不清楚自己要做什么,但考虑到您的预期结果,union all
可能会有效:
select a.tableA_ID,
b.tableB1_ID as TableB1,
null as TableB2
from a join b on a.tableA_ID = b.tableA_ID
union all
select a.tableA_ID,
null,
b2.tableB2_ID
from a join b2 on a.tableA_ID = b2.tableA_ID