我正在尝试使用外连接进行查询,过去我一直使用 Oracle Pl/SQL,但现在正在尝试学习 MySQL。我正在尝试连接 3 个表:USERS、USER_TYPE 和 GRADE。 USERS 表包含 USER_TYPE_ID 列,它是 USER_TYPE 的外键,还包含 GRADE_ID 列,它是 GRADE 的外键。我需要外连接,因为用户类型可以是学生、教职员工等,如果是教职员工,则 USER 没有成绩,因此 USER 表中的 NULL GRADE_ID 。这是我的查询过去使用 (+) 作为外连接的样子。
SELECT A.USER_NAME
, A.USER_TYPE_ID
, B.USER_TYPE_DESC
, A.GRADE_ID
, C.GRADE_DESC
FROM USERS A
, USER_TYPE B
, GRADE C
WHERE A.USER_TYPE_ID = B.USER_TYPE_ID
AND A.GRADE_ID = C.GRADE_ID (+);
有人可以帮我将其转换为 MySQL 查询吗?
提前致谢!
最佳答案
SELECT u.user_name, u.user_type_id, ut.user_type_desc, u.grade_id, g.grade_desc
FROM users u JOIN user_type ut ON (ut.user_type_id = u.user_type_id)
LEFT JOIN grade g ON (u.grade_id = g.grade_id);
关于MySQL 将 Oracle Pl/SQL (+) 转换为 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11552688/