如何组合两个表但没有数据复制

时间:2015-08-20 08:54:51

标签: mysql

这里我在这两个表中使用了两个表行程id很常见     1.使用trip_flight_id将基于trip_id的两个表组合在where where condition中。     下面我已经解释了表格详细信息

 table: details

       trip_flight_id   trip_id(f.k)
       2178              2054
       2179              2054

    table: booking_details

    booking_id trip_id
    1           2054
    2           2054

    I need a result based on trip_flight_id

    if(trip_flight_id=2178)
    booking_id   trip_id   trip_flight_id
     1            2054      2178

    if(trip_flight_id=2179)
     booking_id trip_id    trip_flight_id
       1           2054     2179

I tried the below query but not shows the exact result

SELECT * FROM 
`details` tbd inner join 
`booking_details` tfd on tfd.trip_id=tbd.trip_id 
where tfd.trip_flight_id=2179 

请帮帮我

1 个答案:

答案 0 :(得分:0)

您的当前架构看起来无法实现您想要实现的目标。您应该使用booking_id作为details表中的外键而不是trip_id,这样当您使用此查询时

SELECT b.booking_id, b.trip_id, a.trip_flight_id
FROM
    details a 
    INNER JOIN booking_details b ON a.booking_id = b.booking_id
WHERE
    a.trip_flight_id= 2179

你得到这个结果

+------------+---------+----------------+
| booking_id | trip_id | trip_flight_id |
+------------+---------+----------------+
|          2 |    2054 |           2179 |
+------------+---------+----------------+
1 row in set (0.00 sec)