sql,SELECT a.column1, b.column2,FROM table1 AS a,JOIN table2 AS b ON a.id = b.table1_id;,
“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.学号;
左外连接查询
左外连接(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语句:
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
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复