在MySQL的子句中使用关键字内连接连接两张表,并使用在子句来设置连接条件。如果没有任何条件,内连接和交叉连接在语法上是等同的,两者可以互换。
<>以前SELECT & lt;列名1,列第二名,…比; 得到& lt;表1名祝辞,INNER JOIN & lt;表名2祝辞,(,子句)& lt;列名1,列第二名…祝辞:需要检索的列名。
& lt;表1名祝辞& lt;表名2祝辞:进行内连接的两张表的表名。
内连接是系统默认的表连接,所以在从子句后可以省略内关键字,只用关键字加入。使用内连接后,从子句中上的子句可用来设置连接表的条件。
在从子句中可以在多个表之间连续使用内连接或连接,如此可以同时实现多个表的内连接。
表tb_students_info和表tb_departments都包含相同数据类型的字段dept_id,在两个表之间使用内连接查询。
输入的SQL语句和执行结果如下所示
mysql>, SELECT id、姓名、年龄、dept_name ,,,,,得到tb_students_info tb_departments ,,,,,WHERE tb_students_info.dept_id=tb_departments.dept_id; + - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + | |,id name ,, |, age , |, dept_name | + - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + |,,1,|,Dany ,, |,,, 25, |, Computer | |,,2,|,Green , |,,, 23, |, Chinese , | |,,3,|,Henry , |,,, 23, |, Math ,,,, | |,,4,|,Jane ,, |,,, 22, |, Computer | |,,5,|,Jim ,,, |,,, 24, |, Computer | |,,6,|,John ,, |,,, 21, |, Math ,,,, | |,,7,|,Lily ,, |,,, 22, |, Computer | |,,8,|,Susan , |,,, 23, |, Economy , | |,,9,|,Thomas |,,, 22, |, Chinese , | |,10,|,Tom ,,, |,,, 23, |, Economy , | + - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + 10,rows set 拷贝;(0.00,sec)
在这里,选择语句与前面介绍的最大差别是:选择后面指定的列分别属于两个不同的表,id、名称、年龄在表tb_students_info中,而dept_name在表tb_departments中,同时从字句列出了两个表tb_students_info和tb_departments.WHERE子句在这里作为过滤条件,指明只有两个表中的dept_id字段值相等的时候才符合连接查询的条件。
返回的结果可以看的到,显示的记录是由两个表中的不同列值组成的新记录。
提示:因为tb_students_info表和tb_departments表中有相同的字段dept_id,所以在比较的时候,需要完全限定表名(格式为“表名。列名”),如果只给出dept_id, MySQL将不知道指的是哪一个,并返回错误信息。
在tb_students_info表和tb_departments表之间,使用内连接语法进行内连接查询,输入的SQL语句和执行结果如下所示。
mysql>, SELECT id、姓名、年龄、dept_name ,,,,,得到tb_students_info INNER JOIN tb_departments ,,,,,WHERE tb_students_info.dept_id=tb_departments.dept_id; + - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + | |,id name ,, |, age , |, dept_name | + - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + |,,1,|,Dany ,, |,,, 25, |, Computer | |,,2,|,Green , |,,, 23, |, Chinese , | |,,3,|,Henry , |,,, 23, |, Math ,,,, | |,,4,|,Jane ,, |,,, 22, |, Computer | |,,5,|,Jim ,,, |,,, 24, |, Computer | |,,6,|,John ,, |,,, 21, |, Math ,,,, | |,,7,|,Lily ,, |,,, 22, |, Computer | |,,8,|,Susan , |,,, 23, |, Economy , | |,,9,|,Thomas |,,, 22, |, Chinese , | |,10,|,Tom ,,, |,,, 23, |, Economy , | + - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + 10,rows set 拷贝;(0.00,sec)
在这里的查询语句中,两个表之间的关系通过内连接指定。使用这种语法的时候,连接的条件使用在子句给出,而不是,在和后面指定的条件相同。
原文来自: https://www.linuxprobe.com/mysql-inner-join.html
引用>MySQL内连接查询语句