MySQL Inner Join内连接
MySQL Inner Join 用于仅返回与指定条件匹配的表中的那些结果,并隐藏其他行和列。MySQL 将其假定为默认 Join,因此可以选择在查询中使用 Inner Join 关键字。
我们可以通过以下可视化表示来理解它,其中 Inner Joins 仅返回 table1 和 table2 的匹配结果:
一、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”,其中包含以下数据:
students表:
technologies表:
要从两个表中选择记录,请执行以下查询:
SELECT students.stud_fname, students.stud_lname, students.city, technologies.technology
FROM students
INNER JOIN technologies
ON students.student_id = technologies.tech_id;
成功执行查询后,将给出以下输出:
三、MySQL Inner Join 与 Group By 子句
Inner Join 也可以与 GROUP BY 子句一起使用。以下语句使用带有 GROUP BY 子句的 Inner Join 子句返回学生 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;
上面的语句将给出以下输出:
四、带有 USING 子句的 MySQL 内连接
有时,两个表中的列名相同。在这种情况下,我们可以使用 USING 关键字来访问记录。以下查询更清楚地解释了它:
SELECT student_id, inst_name, city, technology
FROM students
INNER JOIN technologies
USING (student_id);
它将给出以下输出:
五、带有 WHERE 子句的内连接
WHERE 子句使您能够返回过滤结果。以下示例使用内部联接说明了此子句:
SELECT tech_id, inst_name, city, technology
FROM students
INNER JOIN technologies
USING (student_id) WHERE technology = "Java";
该语句给出以下结果:
六、MySQL内部连接多个表
我们已经创建了两个名为students和technologies的表。让我们再创建一个表并将其命名为联系人。
执行以下语句加入三个表students、technology、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允许很多运算符可以与 Inner Join 一起使用,例如大于 (>)、小于 (<)、等于 (=)、不等于 (=) 等。下面的查询返回的结果是收入在20000 到 80000 的范围:
SELECT emp_id, designation, income, qualification
FROM employee
INNER JOIN customer
WHERE income>20000 and income<80000;
这将给出以下输出:
热门文章
优秀文章