【问题标题】:How to join 3 Table in MySQL如何在 MySQL 中加入 3 个表
【发布时间】:2020-04-24 08:55:13
【问题描述】:

我有 3 张桌子:

  1. 患者(身份证、姓名、年龄)
  2. 检查(no、id_patient、id_medic、disease、disease_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;

【问题讨论】:

    标签: mysql sql database join select


    【解决方案1】:

    只需添加另一个联接。您查询中的表名和列名与您的问题不是 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;
    

    请注意,使用表别名(pcm)使查询更易于读写。

    【讨论】:

      猜你喜欢
      • 2013-12-01
      • 2020-10-24
      • 2012-01-14
      • 1970-01-01
      • 2012-07-16
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多