为了解释我的问题,我可以说我正在制造汽车。在我的DB中,汽车由零件(发动机,底盘,车轮)制成。每个部分都有一个物理位置(来自表位置的part_location),它通过(part_location = location_id)链接。
在我的情况下,每个部分只有1个,每个部分都是唯一的
在我的查询中,我试图在查询中组装我的汽车,包括每个部分的城市和国家(不是id)
我的查询的开头:
SELECT car_name, car_type, engine_name, engine_type, chassis_name, chassis_type, wheel_name, wheel_type
FROM cars
LEFT JOIN engines ON car_id = engine_car_id
LEFT JOIN chassis ON car_id = chassis_car_id
LEFT JOIN wheels ON car_id = wheel_car_id
如何包含每个部分的位置(例如car_city,car_country; location_city,location_country中每个部分的别名)?
我的表格设置如下:
Table cars
car_id
car_name
car_type
Table engines (same for chassis, wheels)
engine_id
engine_name
engine_type
engine_car_id
engine_location_id
Table locations
location_id
location_city
location_country
答案 0 :(得分:0)
我认为你的查询背后的想法是正确的。你应该用明确的别名来编写它,所以我希望这样:
SELECT c.car_name, c.car_type, e.engine_name, e.engine_type,
ch.chassis_name, ch.chassis_type,
w.wheel_name, w.wheel_type,
el.city as engine_city
FROM cars c LEFT JOIN
engines e
ON e.car_id = c.engine_id LEFT JOIN
chassis ch
ON ch.car_id = c.chassis_id LEFT JOIN
wheels w
ON w.wheel_car_id = c.car_id LEFT JOIN
locations el
ON el.location_id = e.location_id
但是,如果没有表格布局或样本数据,这只是猜测。