我有四张桌子:

一个用于用户,另一个用于专业人员,另一个用于患者,另一个用于预约.我想从患者预约中获取专业人员的姓名.

我试试这个:

SELECT appointments.date, appointments.start_time, appointments.indication, professionals.medical_box 
FROM appointments 
INNER JOIN patients ON appointments.id_patient = patients.id 
INNER JOIN users ON users.id = patients.id_user 
INNER JOIN professionals ON professionals.id = appointments.id_professional 
WHERE users.id = 14 
ORDER BY appointments.date DESC, appointments.start_time ASC

我的理解是正确的,但当我试图向用户展示时.名字,我得到的名字是病人的名字,不是专业的名字,我想从病人预约中得到专业的名字.sql查询将是什么?

推荐答案

看起来,要获得专业人员的名称,还需要加入专业人员的用户表.

在users表中添加第二个联接的别名,并在显示字段时引用该别名.

SELECT appointments.date, appointments.start_time, appointments.indication, professionals.medical_box, usersProf .name
FROM appointments 
INNER JOIN patients ON appointments.id_patient = patients.id 
INNER JOIN users ON users.id = patients.id_user 
INNER JOIN professionals ON professionals.id = appointments.id_professional 
INNER JOIN users as usersProf ON usersProf .id = professionals.id_user 
WHERE users.id = 14 
ORDER BY appointments.date DESC, appointments.start_time ASC

Mysql相关问答推荐

对象NotExecutabletry 在远程SQL服务器上执行SQL时出错,并使用SQLAchemy.Create_engine

如何重新采样SQL数据库

如何有效地计算共同的朋友/追随者?

如何改进对另一个表中多行的查询依赖性

过程/别名是有点长的MySQL命令的一部分吗?

MySQL 8.0.34-从后端系统管理AWS RDS上的持久连接内存使用

无法连接到扩展坞MySQL Unix套接字

没有 ORDER BY 的查询性能很高,有 ORDER BY 的查询速度慢得像爬行一样

MySQL 关于 JSON 数组和子查询的问题

MySql SELECT 查找包含数字的区间的时间复杂度是多少?

判断一列中的多个值并返回值 1 或 0

MySQL 8.0.30 正则表达式词匹配特殊字符

由于长时间操作而断开连接后,我的 sql 查询是否继续执行?

包含 group_contact 的视图的问题

INNER JOIN 问题(MySQL 错误代码:1054)

如何在 Mysql 中创建复合外键

MySQL查询根据同一表中其他字段的值更新表中的字段

MySQL术语约束与外键的区别?

更改 Laravel 的 created_at 和 updated_at 的名称

将mysql查询输出存储到shell变量中