这里我在这两个表中使用了两个表行程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
请帮帮我
答案 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)