0

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

提前致谢!

4

2 回答 2

1
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);
于 2012-07-19T01:22:27.117 回答
0
SELECT u.user_name, u.user_type_id, ut.user_type_desc, u.grade_id, g.grade_desc
FROM users u, user_type ut
LEFT OUTER JOIN grade g ON u.grade_id = g.grade_id
WHERE ut.user_type_id = u.user_type_id
于 2013-09-05T03:53:55.887 回答