如何高效进行MySQL的关联表查询以获取关联列表?

要进行MySQL关联表查询,可以使用JOIN语句。以下是一个示例:,,“sql,SELECT a.column1, b.column2,FROM table1 AS a,JOIN table2 AS b ON a.id = b.table1_id;,

MySQL关联表查询

如何高效进行MySQL的关联表查询以获取关联列表?

内连接查询

内连接(INNER JOIN)用于获取两个表中字段匹配关系的记录,要查询每个学生的学号、姓名、籍贯、年龄、专业和班级,可以使用以下SQL语句:

SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级
FROM student A
INNER JOIN major B   
ON A.学号 = B.学号;

或者使用简写形式:

SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级
FROM student A
JOIN major B  
ON A.学号 = B.学号;

还可以使用WHERE子句来实现内连接:

SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级
FROM student A, major B
WHERE A.学号 = B.学号;

左外连接查询

如何高效进行MySQL的关联表查询以获取关联列表?

左外连接(LEFT JOIN)返回左表的所有行,以及右表中匹配的行,如果右表中没有匹配的行,则结果为NULL,要查询所有学生及其专业信息,即使某些学生没有分配专业,可以使用以下SQL语句:

SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级
FROM student A
LEFT JOIN major B  
ON A.学号 = B.学号;

右外连接查询

右外连接(RIGHT JOIN)与左外连接类似,但基准表变为右表,要查询所有专业及其对应的学生信息,即使某些专业没有学生,可以使用以下SQL语句:

SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级
FROM student A
RIGHT JOIN major B  
ON A.学号 = B.学号;

全外连接查询

MySQL不直接支持全外连接(FULL OUTER JOIN),但可以通过联合左外连接和右外连接的结果来模拟全外连接,要查询所有学生和专业信息,无论是否有匹配,可以使用以下SQL语句:

如何高效进行MySQL的关联表查询以获取关联列表?

SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级
FROM student A
LEFT JOIN major B  
ON A.学号 = B.学号
UNION
SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级
FROM student A
RIGHT JOIN major B  
ON A.学号 = B.学号;

自连接查询

自连接是指一个表与其自身进行连接,要查询员工及其上司的姓名,可以使用以下SQL语句:

SELECT e1.empName AS 员工姓名, e2.empName AS 上司姓名
FROM t_employee e1
LEFT JOIN t_employee e2
ON e1.bossId = e2.id;

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1225091.html

(0)
未希的头像未希新媒体运营
上一篇 2024-10-19 18:13
下一篇 2024-10-19 18:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入