4 つのテーブルがあり、特定のデータを 1 つに抽出しようとしています。このクエリはあまり構造化されていない可能性がありますが、プロトタイプには少なくとも何かが必要です。私は得た
ユーザー
------
ID
親ID
名前
姓
予約
--------
ID
クライアントID
Division_id
subdivision_id
sub_event_id
host_id
ゲスト_id
旅程
----------
ID
予約ID
itinerary_type_id
client_cost
itinerary_type
-------------
フライト
ホテル
移行
これが私の現在のクエリです
選択する
(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 IS NOT NULL) AS フライト、
(SELECT client_cost FROM itineraries WHERE itinerary_type_id = 2 AND booking_id = bookings.id AND client_cost IS NOT NULL) ホテルとして、
(SELECT client_cost FROM itineraries WHERE itinerary_type_id = 3 AND booking_id = bookings.id AND client_cost IS NOT NULL) AS transfer,
(合計 1 + 合計 2 + 合計 3) AS 合計
から
(SELECT(SELECT client_cost FROM itineraries WHERE itinerary_type_id = 1 AND booking_id = bookings.id AND client_cost IS NOT NULL) as total1,
(SELECT client_cost FROM itineraries WHERE itinerary_type_id = 2 AND booking_id = bookings.id AND client_cost IS NOT NULL) as total2,
(select client_cost FROM itineraries WHERE itinerary_type_id = 3 AND booking_id = bookings.id AND client_cost IS NOT NULL) as total3 FROM bookings) q, users
bookings.guest_id = users.id で予約に参加
users.client_id = bookings.client_id でクライアントに参加
JOIN 詳細 ON details.user_id = users.id
JOIN 部門 ON部門.client_id = users.client_id
subdivisions.division_id = bookings.division_id で subdivisions に参加 sub_events.id = bookings.sub_event_id で sub_events に参加
itineraries.booking_id = bookings.id WHERE bookings.id = 1572 で旅程に参加
GROUP BY bookings.id
期待される結果は
ホスト|名前|フライト|ホテル|転送|合計
--------------------------------------------------
マイク・リトル|ボブ・パーカー|200 |100 |30 |330
現在、サブクエリを使用して、合計を取得している場所からテーブルを一時的に作成しています..しかし、うまくいかないようです...問題は、予約IDを新しい一時サブクエリに渡すことができないことです.テーブル....それを回避する方法は他にありますか? 私は永遠に素晴らしいです!:-) .. 本当 !!!