如何在MySQL中加入3个表

我有3张表。

  1. 病人(ID,姓名,年龄)
  2. 检查(no, id_patient, id_medic, illness, illness_status)
  3. 医护人员(身份证、姓名、年龄)

因此,我想按病人.姓名列出所有病人(姓名、年龄)、检查数据(疾病、状态)和相关医生的顺序。

select patient.name, age, illness, illness_status from patient INNER JOIN check on patient.id = check.id_patient order by patient.name;

我只能到这里,这里没有出现医护人员的名字,我很迷茫,怎么办呢?

+-----------+------+----------------------+----------------+
| name      | age  | illness              | illness_status |
+-----------+------+----------------------+----------------+
| Thomas    |   60 | Cough                | Normal         |
| Peter     |   60 | Flu                  | Normal         |

但我想这样显示。

name age illness     illness_status    medic.name

但我尝试了不同的,但仍然是一个错误。

select patient.name, age, illness, illness_status medic.name from patient LEFT JOIN check on patient.id = check.id_patient INNER JOIN doctor on check.id_medic = medic.id order by patient.name;

解决方案:

只要再添加一个连接。你查询中的表和列名与你的问题不是100%一致,但应该是这样。

select p.name, p.age, c.illness, c.illness_status, m.name
from patient p
inner join check_up c on c.id_patient  = p.id
inner join medic m on m.id = c.id_medic
order by p.name;

请注意,使用表的别名(p, c, m)使查询更容易读和写。

给TA打赏
共{{data.count}}人
人已打赏
未分类

Java中的Http POST(带文件上传)。

2022-9-8 21:38:37

未分类

App Engine Flexible Environment - Dockerfile安装了GDAL的过时版本。

2022-9-8 21:38:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索