SQL联结 - 内联结
阅读:445上节我们讲到联结表,本节开始讲解SQL内联结。
1. 给字段和表取别名
当字段名和表名遇到如下情况时,我们需要给表或字段取别名(alias):
- 命名不规范
- 名字太长
- 重名
使用AS关键字给他们取别名,当然AS关键字可以省略,但是一般不建议省略,这个是SQL规范。实际SQL书写中,字段后的AS关键字我们一般不省略,表后面的关键字一般省略。
比如如下SQL:
SELECT title AS t, name AS n FROM t_course c, t_category tc WHERE c.categ
ory_id = tc.id;
2. 内联结
内联结(INNER JOIN),也叫做等值联结。联结条件用ON子句,不是用WHERE子句。INNER关键字可以省略。
我们现在通过内联结,查询出课程名称和该课程所属分类的名称。SQL如下:
SELECT title, name FROM t_course c INNER JOIN t_category tc ON c.category_id = tc.id;
输出结果如下:
+-------------------------------------------------+-----------+
| title | name |
+-------------------------------------------------+-----------+
| Java教程:核心技术一网打尽 | 后端 |
| Java面试教程 | 后端 |
| redis基础教程 | 中间件 |
| 深入理解MySQL底层原理 | 中间件 |
| kafka教程 | 中间件 |
| Spring Cloud基础教程 | 后端 |
| 架构师教程 | 架构 |
| git教程 | 后端 |
| 深入剖析Java虚拟机 | 后端 |
| SQL教程 | 中间件 |
| 设计模式:GOF的23种设计模式全剖析 | 后端 |
| HTML教程 | 前端 |
| HTML5教程 | 前端 |
| CSS教程 | 前端 |
| JavaScript教程 | 前端 |
| HTTP协议 | 前端 |
| Tomcat教程 | 中间件 |
| Servlet教程 | 后端 |
| Jsp教程 | 前端 |
| Ajax教程 | 前端 |
| JQuery教程 | 前端 |
| Maven教程 | 后端 |
| Linux教程 | 后端 |
| JDBC教程 | 后端 |
| Spring教程 | 后端 |
| Spring MVC教程 | 后端 |
| Spring boot教程 | 后端 |
| MyBatis教程 | 后端 |
| ActiveMQ教程 | 中间件 |
| ZooKeeper教程 | 中间件 |
| dubbo教程 | 中间件 |
+-------------------------------------------------+-----------+
31 rows in set (0.00 sec)
这里注意,内联结是把符合ON条件的输出,不符合不输出。
总结:
- 内联结是把符合ON子句的数据输出。
- 表名和字段名在需要时都可以取别名。
赞赏支持
