让我们说我有两个表,其中有以下几列:
汽车
motorcycle_id | fuel_id | secondary_fuel_id ...
fuel_types
fuel_id | fuel_label | ...
在这种情况下,fuel_id和secondary fuel_id均参考fuel_types表。
是否可以在内部联接中包含两个标签?我想加入fuel_id,但我希望能够两次将Fuel标签作为新列。因此,连接将类似于:
motorcycle_id | fuel_id | fuel_label | secondary_fuel_id | secondary_fuel_label | ...
在这种情况下,我将创建secondary_fuel_label列。
这可以在SQL中使用联接吗?还有另一种方法可以做到这一点吗?
答案 0 :(得分:1)
您只需加入两次:
select c.*, f1.fuel_label, f2.fuel_label as secondary_fuel_label
from cars c left join
fuel_types f1
on c.fuel_id = f1.fuel_id left join
fuel_types f2
on c.fuel_id = f1.secondary_fuel_id ;
这里的关键点是使用表别名,因此您可以区分对fuel_types
的两个表引用。
请注意,即使缺少其中一个ID,它也会使用left join
来确保返回行。