实现并查询引用两个表的MYSQL外键

时间:2018-12-28 09:23:06

标签: 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

如果我以后解释,我想要一个可以引用多个表的外键。 注意:-这尚未实现。我想实现这种情况。我想通过 Tour 表中的id,并需要获取该记录的关联数据。

在MYSQL中可以吗?

1 个答案:

答案 0 :(得分:1)

您可以在下面尝试-

DEMO

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