表a:
id value0
101 a1
102 a2
103 a3
表b:
id value1
101 b1
101 b2
101 b3
表c:
id value2
101 c1
103 c3
103 c4
Rezult表:
id value0 value1 value2
101 a1 b1 0
101 a1 b2 0
101 a1 b3 0
101 a1 0 c1
102 a2 0 0
103 a3 0 c3
103 a3 0 c4
是否可以使用一个查询从表a,b,c生成rezult表(不创建两个表并加入它们)?也许有可能只使用左连接来实现它?
答案 0 :(得分:0)
这可能会对你有帮助 -
select t1.id, t2.id, t3.id
from tablea t1 inner join tableb t2 on t1.id = t2.id
inner join tablec t3 on t2.id=t3.id
group by id
答案 1 :(得分:0)
如果您有基表,请选择该基表并对其他人执行left join
。如果您的表都不能作为基表,则可以使用full join
s(均作为outer joins):
select *
from table_a
full join table_b using (id)
full join table_c using (id)
这将选择sql NULL
s,其中没有数据,但您可以使用COLAESCE(value0, 'N/A')
等来选择一些默认数据。