mysql - 结合2表
问题描述
当我有如下表状态时
id | status | prev_status
1 | open | 0
2 | checking | 1
3 | reject | 2
4 | approve | 2
5 | close | 4
和下面的表事务
id | no | date | status_id
1 | IDN01 | 2018-12-01 | 1
2 | IDN02 | 2018-12-02 | 2
3 | IDN03 | 2018-12-03 | 1
4 | IDN04 | 2018-12-04 | 1
5 | IDN05 | 2018-12-05 | 4
当我执行SELECT status_id FROM transaction WHERE id = 2
“如何显示结果”时,还显示 id 2 中 status_id 的下一个状态
status_id | status
2 | checking
3 | reject
4 | approve
提前谢谢你,
解决方案
你的数据库模型有这两个单独的外键有点奇怪。无论如何,您可能正在寻找的查询是:
select c.id, c.status
from transaction t
join status c on c.id = t.status_id
where t.id = 2
union all
select p.id, p.status
from transaction t
join status p on p.prev_status = t.status_id
where t.id = 2
推荐阅读
- php - 修改woocommerce电子邮件中某些产品的数量
- android - Google 登录:仅在 Play 商店中出现登录 API 异常 10
- powershell - 使用powershell将对象输出到excel
- tkinter - tkinter scrolledtext 从左到右滚动
- php - 在构造函数 symfony 中进行用户检查
- c++ - 为什么C/C++中存在一个定义规则
- python - 提取numpy数组中每个元素的最后两位数字的有效方法
- ruby - 围绕现有的指定方法运行 ruby 方法
- asp.net-core - Blazor 服务器端和 asp.net 核心 AWS 无服务器 lambda 应用程序
- python - Create a dict using two columns from dataframe with duplicates in one column