首页 > 解决方案 > 实现和查询引用两个表的MYSQL外键

问题描述

我有两张桌子酒店活动

Hotels
id    |   name      |
1     | hilton      |
2     | taj samudra |
3     | galadari    |


Activities
    id   |   name          |
    1    |  air balloon    |
    2    |  whale watching |
    3    |  jungle safari  |

我还有另一桌

id      | starting_location_id | starting_location_type 
1       | 1                    | hotel
2       | 1                    | activity

用户可以从酒店或活动开始游览。

我想要的是通过id并需要使用连接来获取这样的数据

id   | name
1    | hitlon
2    | air baloon

如果我以后解释,我想要一个可以引用多个表的外键。注意:- 这还没有实现。我想实现这种场景。我想idTour表中传递,并且需要获取该记录的关联数据。

这可能在MYSQL中吗?

标签: mysql

解决方案


你可以试试下面 -

演示

select t1.id,coalesce(h.name,a.name) as name 
from tour t1 
left join hotels h on t1.starting_location_id=h.id and starting_location_type='hotel'
left join Activities a on t1.starting_location_id=a.id and starting_location_type='activity'

OUTPUT:

id  name
2   air balloon
1   hilton

推荐阅读