MySQL的内连接、左连接和右连接查询详解
内连接(Inner Join)
内连接也叫等值连接,表示两张表中字段相等的数据行才会被查询出来。内连接常用的语法格式是:
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
示例1:假设有两个表student和score,它们有共同的字段student_id,要查询每个学生的学号和分数,应使用内连接查询:
SELECT s.student_id, sc.score
FROM student s
INNER JOIN score sc
ON s.student_id = sc.student_id;
左连接(Left Join)
左连接可以查询出左表的所有行,同时将相应与右表相关的行组合在一起。如果右表中没有与左表相关的行,则右表会以NULL值填充。左连接的语法格式如下:
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
示例2:假设有两个表student和score,此时要查询所有学生的学号和分数,无论该学生是否有分数记录,应使用左连接查询:
SELECT s.student_id, sc.score
FROM student s
LEFT JOIN score sc
ON s.student_id = sc.student_id;
右连接(Right Join)
右连接与左连接相反,可以查询到右表的所有行,同时将相应的与左表相关的行组合在一起。如果左表中没有与右表相关的行,则左表会以NULL值填充。右连接的语法格式如下:
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
示例3:假设有两个表student和score,此时要查询每个课程的分数和学生姓名,无论该课程是否有学生选课,应使用右连接查询:
SELECT s.name, sc.score
FROM student s
RIGHT JOIN score sc
ON s.student_id = sc.student_id;
以上就是MySQL的内连接、左连接和右连接查询的详细攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql的内连接,左连接和右链接查询详解 - Python技术站