MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL Inner Join

MySQL Inner Join用于仅返回与 匹配指定条件的表中的结果,并隐藏其他行和列。 MySQL假定它是默认的Join,因此在查询中使用Inner Join关键字是可选的。
我们可以通过以下可视化表示来理解它,其中Inner Joins仅返回table1和table2的匹配结果。
MySQL内部联接

MySQL Inner Join语法:

Inner Join关键字与 SELECT语句一起使用,并且必须写在FROM子句之后。以下语法对其进行了更清晰的解释:
SELECT columns
FROM table1
INNER JOIN table2 ON condition1
INNER JOIN table3 ON condition2
...;
使用这种语法,我们首先必须选择列列表,然后指定将要连接到主表的表名,出现在内部联接(table1,table2)中,最后,在ON关键字。 Join条件返回Inner子句中指定的表之间的匹配行。

MySQL内部联接示例

让我们首先创建两个表"students"和"technologies",其中包含以下数据:
表: students
MySQL内部联接
表: technologies
MySQL内部联接
要从两个表中选择记录,请执行以下查询:
SELECT students.stud_fname, students.stud_lname, students.city, technologies.technology  
FROM students 
INNER JOIN technologies  
ON students.student_id = technologies.tech_id;
成功执行查询后,它将提供以下输出:
MySQL内部联接

带有Group By子句的MySQL内部联接

内部联接也可以与GROUP BY子句一起使用。以下语句使用带有GROUP BY子句的Inner Join子句返回student_id,inst_name,city和technology。
SELECT students.student_id, technologies.inst_name, students.city, technologies.technology  
FROM students 
INNER JOIN technologies  
ON students.student_id = technologies.tech_id GROUP BY inst_name;
上面的语句将给出以下输出:
MySQL内部联接

带有USING子句的MySQL内连接

有时,两个表中的列名相同。在这种情况下,我们可以使用USING关键字来访问记录。以下查询对其进行了更清晰的说明:
SELECT student_id, inst_name, city, technology  
FROM students 
INNER JOIN technologies  
USING (student_id);
它将给出以下输出:
MySQL内部联接

使用WHERE子句进行内部联接

使用WHERE子句可以返回 过滤器结果。下面的示例通过内部联接说明了此子句:
SELECT tech_id, inst_name, city, technology  
FROM students 
INNER JOIN technologies  
USING (student_id) WHERE technology = "Java";
此语句给出以下结果:
MySQL内部联接

MySQL内部连接多个表

我们已经创建了两个名为 studentstechnologies的表。让我们再创建一个表并将其命名为联系人。
MySQL内部联接
执行以下语句以加入三个表的学生,技术人员和联系人:
SELECT student_id, inst_name, city, technology, cellphone
FROM students 
INNER JOIN technologies USING (student_id)
INNER JOIN contact ORDER BY student_id;
成功执行上述查询后,将提供以下输出:
MySQL内部联接

使用运算符进行MySQL内部联接

MySQL 允许许多运算符可以与内部联接一起使用,例如大于(>),小于(<),等于(=),不等于(=)等。以下查询返回收入在20000到80000范围内的结果:
SELECT emp_id, designation, income, qualification
FROM employee
INNER JOIN customer
 WHERE income>20000 and  income<80000;
这将提供以下输出:
MySQL内部联接
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4