mysql - 在 MySQL 中使用联接从多个表中选择数据

标签 mysql sql

我有以下表格

用户:

* id
* name
* role id
* phone

学生

1: userid ( fk users.id)
2: course_id

工作人员

1: staff_id(fk users.id)
2: course-id

类(class)

1: COURSE_ID
1:COURSENAME

我需要查找与某个号码关联的所有帐户

我需要姓名、用户 ID、角色 ID、类(class) ID、CORSENAME、STAFFID,请提供手机

我已经编写了此查询,但返回零结果

SELECT users.name, users.id, staff.user_id, students.course_id, users.role_id, courses.course_title FROM users INNER JOIN students ON users.id = students.user_id INNER JOIN staff ON staff.user_id = users.id INNER JOIN courses ON courses.id = students.course_id WHERE users.phone = '9495990028'

限制 0、30

最佳答案

尝试联合运算符:

SELECT name, s.userid, roleid, s.course_id, c.coursename, null
FROM USERS u
INNER JOIN STUDENTS s 
INNER JOIN COURSES c
ON s.userid = u.id AND c.course_id = s.course_id
WHERE u.phone = ?
UNION 
SELECT name, null, roleid, s.course_id, c.coursename, s.staff_id
FROM USERS u
INNER JOIN STAFF s
INNER JOIN COURSES c
ON s.staff_id = u.id AND c.course_id = s.course_id
WHERE u.phone = ?;

关于mysql - 在 MySQL 中使用联接从多个表中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51255972/

相关文章:

php - 从 MySQL 数据库中获取 Google Maps .getBounds 中的所有记录?

php - MySQL JSON 数据类型更新与删除

c# asp.net - 将数据插入数据库(不知道哪里出错了)

sql - Oracle 子查询的趣味性

php - 选择一列中存在但所有其他列中不存在的值

sql - 从三个表中选择数据?

php - 我的 Web 应用程序的最佳 SIMPLE 数据库结构,包含资源、类别和标签

mysql - 为什么 MySQL unix 时间没有达到 32 位无符号整数限制?

java - 带有 where 子句的 SQL select 语句

sql - 检查 MySQL 中的约束