MySQL 内连接查询

MySQL FROM 子句中使用关键字 INNER JOIN 连接两张表,并使用 ON 子句来设置连接条件。如果没有任何条件,INNER JOIN 和 CROSS JOIN 在语法上是等同的,两者可以互换。

语法格式如下:

SELECT <列名1,列名2>
FROM <表名1> INNER JOIN <表名2> [ ON子句]

语法说明如下。

	<列名1,列名2…>:需要检索的列名。<表名1><表名2>:进行内连接的两张表的表名。

内连接是系统默认的表连接,所以在 FROM 子句后可以省略 INNER 关键字,只用关键字 JOIN。使用内连接后,FROM 子句中的 ON 子句可用来设置连接表的条件。

在 FROM 子句中可以在多个表之间连续使用 INNER JOIN 或 JOIN,如此可以同时实现多个表的内连接。

表 tb_students_info 和表 tb_departments 都包含相同数据类型的字段 dept_id,在两个表之间使用内连接查询。输入的 SQL 语句和执行结果如下所示。

mysql> SELECT id,name,age,dept_name-> FROM 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 in set (0.00 sec)

在这里,SELECT 语句与前面介绍的最大差别是:SELECT 后面指定的列分别属于两个不同的表,id、name、age 在表 tb_students_info 中,而 dept_name 在表 tb_departments 中,同时 FROM 字句列出了两个表 tb_students_info 和 tb_departments。WHERE 子句在这里作为过滤条件,指明只有两个表中的 dept_id 字段值相等的时候才符合连接查询的条件。

返回的结果可以看到,显示的记录是由两个表中的不同列值组成的新记录。

提示:因为 tb_students_info 表和 tb_departments 表中有相同的字段 dept_id,所以在比较的时候,需要完全限定表名(格式为“表名.列名”),如果只给出 dept_id,MySQL 将不知道指的是哪一个,并返回错误信息。

在 tb_students_info 表和 tb_departments 表之间,使用 INNER JOIN 语法进行内连接查询,输入的 SQL 语句和执行结果如下所示。

mysql> SELECT id,name,age,dept_name-> FROM 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 in set (0.00 sec)

在这里的查询语句中,两个表之间的关系通过 INNER JOIN 指定。使用这种语法的时候,连接的条件使用 ON 子句给出,而不是 WHERE,ON 和 WHERE 后面指定的条件相同。

提示:使用 WHERE 子句定义连接条件比较简单明了,而 INNER JOIN 语法是 ANSI SQL 的标准规范,使用 INNER JOIN 连接语法能够确保不会忘记连接条件,而且 WHERE 子句在某些时候会影响查询的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何进入embl的ebi网站fasta3服务器,The EMBL-EBI bioinformatics web and programmatic tools framework...

摘要&#xff1a;Since 2009 the EMBL-EBI Job Dispatcher framework has provided free access to a range of mainstream sequence analysis applications. These include sequence similarity search services (https://www.ebi.ac.uk/Tools/sss/) such as BLAST, FASTA and…

mysql 时间 设计模式_数据库时间设计模式

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

超微服务器开机启动项目怎么设置,超微服务器启动项设置

超微服务器启动项设置 内容精选换一换微服务部署完后&#xff0c;您可以根据微服务的运行情况进行微服务的治理。您可以先在“服务目录 > 微服务列表”中创建微服务&#xff0c;启动微服务后&#xff0c;根据yaml文件的配置&#xff0c;会在对应的服务下注册服务实例。如果没…

MySQL 外连接查询

MySQL 中内连接是在交叉连接的结果集上返回满足条件的记录&#xff1b;而外连接先将连接的表分为基表和参考表&#xff0c;再以基表为依据返回满足和不满足条件的记录。 外连接更加注重两张表之间的关系。按照连接表的顺序&#xff0c;可以分为左外连接和右外连接。 左外连接…

mono for android mysql_mono for android 自定义titleBar Actionbar 顶部导航栏 修改 样式 学习...

以前的我是没有做笔记的习惯的&#xff0c;学习了后觉得自己能记住&#xff0c;但是最近发现很多学的东西都忘记了&#xff0c;所有现在一有新的知识&#xff0c;就记下来吧。最近又做一个mono for android 的项目 这次调整比较大&#xff0c;上次做的点餐系统很好用 &#xff…

mysql srid_mysql8 参考手册--索引优化

主键优化表的主键表示您在最重要的查询中使用的一列或一组列。它具有关联的索引&#xff0c;可提高查询性能。查询性能可以从NOT NULL优化中受益&#xff0c;因为它不能包含任何NULL值。使用InnoDB存储引擎&#xff0c;可以对表数据进行物理组织&#xff0c;以根据一个或多个主…

MySQL 分组查询

MySQL SELECT 语句&#xff0c;允许使用 GROUP BY 子句&#xff0c;将结果集中的数据行根据选择列的值进行逻辑分组&#xff0c;以便能汇总表内容的子集&#xff0c;实现对每个组而不是对整个结果集进行整合。 语法格式如下&#xff1a; GROUP BY { <列名> | <表达式…

MySQL 指定过滤条件

MySQL SELECT 语句&#xff0c;除了能使用 GROUP BY 子句分组数据外&#xff0c;还可以使用 HAVING 子句过滤分组&#xff0c;在结果集中规定了包含哪些分组和排除哪些分组。 语法格式如下&#xff1a; HAVING <条件>其中&#xff0c;<条件>指的是指定的过滤条件…

mysql 终端 远程访问,通过终端连接到远程mysql

For a test I set up user mysql user with % access. When I try to connect from a remote machine I get:Enter password:Then immediately get this:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘xxxxxxx’ (1)Any ideas解决方案Try to comment the bind-addr…

MySQL 正则表达式查询

MySQL中正式表达式通常被用来检索或替换符合某个模式的文本内容&#xff0c;根据指定的匹配模式匹配文中符合要求的特殊字符串。 例如&#xff0c;从一个文件中提取电话号码&#xff0c;查找一篇文章中重复的单词或替换用户输入的敏感语汇等&#xff0c;这些地方都可以使用正则…

mysql修改最大文件数_mysql更改最大打開文件數

1. 查看内核限制# ulimit -n655352. 修改 my.cnf 限制# vi /etc/my.cnf[mysqld]open_files_limit 655353. 重启 mysqld# /etc/init.d/mysql restart4. 查看结果mysql>show global variables like %open%;| open_files_limit | 65535 || table_open_cache | 1…

MySQL 插入语句

数据库与表创建成功以后&#xff0c;需要向数据库的表中插入数据。在 MySQL 中可以使用 INSERT 语句向数据库已有的表中插入一行或者多行元组数据。 基本语法 INSERT 语句有两种语法形式&#xff0c;分别是 INSERT…VALUES 语句和 INSERT…SET 语句。 1 INSERT…VALUES语句 …

onmp mysql端口_ONMP 安装教程

之前用过极路由 1s&#xff0c;刷了恩山 H大的固件&#xff0c;发现内置了 web 环境&#xff0c;没想到一个路由器都能跑的动 LNMP。我之前最极限的尝试就是在一个 4刀3年 的 sentris ovz 小鸡上跑过 WordPress &#xff0c;那台小鸡 配置很低&#xff0c;只有 64M 的内存&…

MySQL 修改数据

MySQL 中&#xff0c;可以使用 UPDATE 语句来修改、更新一个或多个表的数据。 UPDATE 语句的基本语法 使用 UPDATE 语句修改单个表&#xff0c;语法格式为&#xff1a; UPDATE <表名> SET 字段 1值 1 [,字段 2值 2… ] [WHERE 子句 ] [ORDER BY 子句] [LIMIT 子句]语法…

mysql添加索引后查询先用索引吗_mysql 添加索引后 在查询的时候是mysql就自动从索引里面查询了。还是查询的时候有单 独的参数查询索引?...

满意答案llt17112014.06.20采纳率&#xff1a;49% 等级&#xff1a;9已帮助&#xff1a;614人MYSQL创建索引对索引使用方式分两种&#xff1a;1 由数据库查询优化器自动判断否使用索引&#xff1b;2 用户写SQL语句时强制使用索引下面两种索引使用方式进行说明第种自动使用索…

MySQL 删除数据

MySQL 中&#xff0c;可以使用 DELETE 语句来删除表的一行或者多行数据。 删除单个表中的数据 使用 DELETE 语句从单个表中删除数据&#xff0c;语法格式为&#xff1a; DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]语法说明如下&#xff1a; <表…

MySQL 视图简析

认识视图 视图是一个虚拟表&#xff0c;其内容由查询定义。同真实表一样&#xff0c;视图包含一系列带有名称的列和行数据&#xff0c;但视图并不是数据库真实存储的数据表。 视图是从一个、多个表或者视图中导出的表&#xff0c;包含一系列带有名称的数据列和若干条数据行。…

win7 vs2017 程序报错_windows + VS2017 配置libpytorch

因为项目对实时性的要求&#xff0c;尝试一波c直接调用libpytorch。实现的同时&#xff0c;整理了网上的相关资料&#xff0c;希望对效率追求的同学提供一份帮助。0.下载准备下载安装VS2017 和 cmake &#xff08;3.0版本以上&#xff09;记得把bin目录添加到环境变量path中。这…

jdbc mysql api_JDBC Api详解

一.什么是JDBCJDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API&#xff0c;可以为多种关系数据库提供统一访问&#xff0c;它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准&#xff0c;据此可以构建更高级的工具和接口&#xff0…

MySQL 修改视图

修改视图是指修改 MySQL 数据库中存在的视图&#xff0c;当基本表的某些字段发生变化时&#xff0c;可以通过修改视图来保持与基本表的一致性。 基本语法 可以使用 ALTER VIEW 语句来对已有的视图进行修改。 语法格式如下&#xff1a; ALTER VIEW <视图名> AS <SE…