MySQL 内连接

MySQL 内连接

MySQL内连接用于返回表中与指定条件匹配的结果,并隐藏其他行和列。MySQL将其视为默认连接方式,因此使用内连接关键字与查询是可选的。

我们可以通过以下视觉表示来理解它,其中内连接仅返回表1和表2中的匹配结果:

MySQL 内连接

MySQL 内连接 语法:

Inner Join 关键字用于 SELECT 语句 并且必须在 FROM 子句之后书写。下面的语法更清楚地解释了它:

SELECT columns
FROM table1
INNER JOIN table2 ON condition1
INNER JOIN table3 ON condition2
...;

在这个语法中,我们首先选择列列表,然后指定将与主表连接的表名,在Inner Join(table1,table2)中出现,最后在ON关键字之后提供条件。Join条件返回在Inner子句中指定的表之间的匹配行。

MySQL内连接示例

让我们首先创建两个包含以下数据的表“students”和“technologies”:

表:student

MySQL 内连接

表:技术

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 内连接

MySQL内连接与GROUP BY子句

INNER JOIN也可以与GROUP BY子句一起使用。以下语句使用内连接与GROUP BY子句返回学生ID、技术名称、城市和机构名称。

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 内连接

MySQL 使用 USING 子句的内连接

有时候,两个表中的列名是相同的。在这种情况下,我们可以使用 USING 关键字来访问记录。下面的查询更清楚地解释了这个问题:

SELECT student_id, inst_name, city, technology  
FROM students 
INNER JOIN technologies  
USING (student_id);

以下是输出结果:

MySQL 内连接

内连接与WHERE子句

WHERE子句允许你返回 过滤 的结果。以下示例说明了使用内连接的WHERE子句:

SELECT tech_id, inst_name, city, technology  
FROM students 
INNER JOIN technologies  
USING (student_id) WHERE technology = "Java";

这个陈述给出了以下结果:

MySQL 内连接

MySQL多表内连接

我们已经创建了两个名为 studentstechnologies 的表。让我们再创建一个表并命名为contact。

MySQL 内连接

执行以下语句来连接三个表students,technologies和contact:

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 内连接

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程