我有 4 个表,我试图在一个表中提取某些数据,这个查询可能结构不太好,但我的原型至少需要一些东西。我有
用户
------
ID
parent_id
姓名
姓
预订
--------
ID
client_id
Division_id
细分_id
sub_event_id
host_id
客人ID
行程
----------
ID
预订编号
itinerary_type_id
客户成本
行程类型
-------------
航班
酒店
转移
这是我当前的查询
选择
(SELECT CONCAT(name,' ',surname) FROM users WHERE id = bookings.host_id) 作为主机,
CONCAT(users.name,' ',users.surname) AS 名称,
(SELECT client_cost FROM itineraries WHERE itinerary_type_id = 1 AND booking_id = bookings.id AND client_cost 不为空)作为航班,
(SELECT client_cost FROM itineraries WHERE itinerary_type_id = 2 AND booking_id = bookings.id AND client_cost 不为空)作为酒店,
(SELECT client_cost FROM itineraries WHERE itinerary_type_id = 3 AND booking_id = bookings.id AND client_cost 不为空)作为转移,
(总计 1 + 总计 2 + 总计 3)AS 总计
从
(SELECT(SELECT client_cost FROM itineraries WHERE itinerary_type_id = 1 AND booking_id = bookings.id AND client_cost 不为空)作为total1,
(SELECT client_cost FROM itineraries WHERE itinerary_type_id = 2 AND booking_id = bookings.id AND client_cost 不为空) 作为total2,
(SELECT client_cost FROM itineraries WHERE itinerary_type_id = 3 AND booking_id = bookings.id AND client_cost 不为空)作为total3 FROM bookings)q,用户
在 bookings.guest_id = users.id 上加入预订
在 users.client_id = bookings.client_id 上加入客户
在 details.user_id = users.id 上加入详细信息
在 Divisions.client_id = users.client_id 上加入部门
加入细分 ON subdivisions.division_id = bookings.division_id 加入 sub_events ON sub_events.id = bookings.sub_event_id
在 itineraries.booking_id = bookings.id WHERE bookings.id = 1572 上加入行程
GROUP BY bookings.id
预期的结果是
主持人|姓名|航班|酒店|接送|总计
--------------------------------------------------
迈克·利特尔|鲍勃·帕克|200 |100 |30 |330
目前我正在使用子查询来临时创建一个表格,从中获取总数..但它似乎不起作用......我认为,问题是我无法将预订 ID 传递给新的临时子查询表....还有其他解决方法吗?我将永远伟大!:-) .. 真的 !!!