mysql - 实现和查询引用两个表的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
如果我以后解释,我想要一个可以引用多个表的外键。注意:- 这还没有实现。我想实现这种场景。我想id
在Tour表中传递,并且需要获取该记录的关联数据。
这可能在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
推荐阅读
- wolfram-mathematica - 如何存储最小化的输出
- mongodb - 通过 docker-compose 使用 SSL 构建 mongodb
- arrays - 如何编辑我的函数并添加参数数组?
- c# - 调试多线程 WPF 应用程序时 Visual Studio 性能下降
- git - 将多个文件移动到新文件夹并更新 GitHub URL
- linux - 导出带有特殊字符的 .env
- angular - 用大写和小写字母过滤一行,不仅仅是一个或另一个,而是两者
- c++ - 是否可以将字符串重载为 char 元素的向量?
- c# - 如何更改定时器外的临时变量值?
- python - 用于多处理的 Python3 搁置项迭代器