join on语法
各种连接的情况入下图(红色的就是返回的数据):
主要有3种连接
- INNER JOIN: 如果表中有至少一个匹配,则返回行
- LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行 以 INNER JOIN: 为例
SELECT s.studentno,studentname,subjectno,studentresult FROM
student AS s INNER JOIN result AS r #取别名防止select中的studentno不确定从哪张表获取
ON s.`studentno`=r.`studentno` #交叉点,两张表都有studentno
#on和where几乎一样,都是加条件,前者叫连接查询,后者叫等值查询
复制代码
查询(select)的数据如果左表(student)没有,就去右表(result)查,查到就返回;
如果有超过两张表的程序(方法论)
- 就两张表先连接查询(join)
- 两张表join完就变成了一张表(逻辑上)
- join完后再join(此时逻辑上就是两张表的join),
- 以此类推