我有 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 传递给新的临时子查询表....还有其他解决方法吗?我将永远伟大!:-) .. 真的 !!!