我有以下表格
用户:
* 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/