MySQL 将 Oracle Pl/SQL (+) 转换为 MySQL

标签 mysql outer-join

我正在尝试使用外连接进行查询,过去我一直使用 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/

相关文章:

php - 这是将图像保存到 mysql 数据库的可接受方法吗?

c# - 需要帮助使用 LINQ 进行内部连接查询

sql - 对于 SQL,什么时候开始需要始终使用单词 "Inner Join"而不是隐式连接?

php - 在 PHP 和 MySQL 中使用准备好的查询删除行

r - 带日期的外层产品

mysql - 将聚合、外连接查询转换为 ANSI-92

MySQL 连接导致重复

php - 使用 PHP 定期检索 mysql 统计数据并包括空数据

mysql - 使用 SUM 计算,查询不起作用?

php - 进行动态投票