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を新しい一時サブクエリに渡すことができないことです.テーブル....それを回避する方法は他にありますか? 私は永遠に素晴らしいです!:-) .. 本当 !!!