0

正常に機能する単純なmysqlクエリがありますが、すべての値が返されるわけではありません。左結合テーブルを単独で使用するとすべての値が返されますが、他のテーブルを追加すると、すべて「=」であるテーブルのみが値を返します。クエリは次のとおりです。

SELECT 

d.flight_no   , b.arrival_flight

FROM  
jtl_booking_transfer_details                    AS      b
LEFT  JOIN jtl_flight_info                      AS      d      
       ON  (d.flight_no      b.arrival_flight),

jtl_booking_master                                     a,
jtl_hotels                                             c,                                                               
jtl_airlines                                           e


WHERE 

a.voucher_number                             =        b.voucher_number             AND 
b.hotel_id                                   =        c.hotel_id                   AND
e.airline_code                               =        d.airline_code              
4

1 に答える 1

2

すべてのテーブルを取得するために同じ構文を使用します(読みやすい:テーブルを結合するためのJOIN、他の述語のためのWHERE句)

SELECT 
d.flight_no   , b.arrival_flight

FROM  
jtl_booking_transfer_details b
LEFT JOIN jtl_flight_info d      
   ON  d.flight_no = b.arrival_flight
LEFT JOIN  jtl_booking_master a 
   ON a.voucher_number = b.voucher_number
LEFT JOIN jtl_hotels c 
   ON b.hotel_id = c.hotel_id
LEFT JOIN jtl_airlines  e 
   ON  e.airline_code = d.airline_code
于 2012-10-01T17:55:02.357 に答える