[MySQL][复核查询][多表查询][自连接][自查询]详细讲解
在MySQL中,复核查询通常指的是连接(JOIN)多个表以返回所需的数据。自连接是指同一张表自己连接自己,以便在单次查询中利用表内不同行之间的关系。自查通常指的是在查询中使用子查询。
以下是一个自连接查询的例子,假设我们有一个员工表,每个员工都有一个直接上级,我们想要查询所有员工及其直接上级的信息:
SELECT e1.name AS Employee, e2.name AS Manager
FROM employees e1
JOIN employees e2 ON e1.manager_id = e2.id;
在这个例子中,employees
表通过别名e1
和e2
自连接,以便获取每个员工及其对应的经理信息。
接下来是一个自查询的例子,假设我们想要查询每个员工的直接下属:
SELECT e1.name AS Employee,
(SELECT GROUP_CONCAT(e2.name) FROM employees e2 WHERE e2.manager_id = e1.id) AS DirectReports
FROM employees e1;
在这个例子中,子查询用于查找每个员工的直接下属的名字,并将它们以逗号分隔拼接成一个字符串。外层查询通过别名e1
遍历每个员工记录。
评论已关闭