内连接INNER JOIN

内连接INNER JOIN

一、连接

  MySQL的SELECT语句、多表更新、多表删除语句中支持JOIN操作。

语法结构

二、数据表参照

table_reference

tbl_name [[AS] alias] | table_subquery [AS] alias

  数据表可以使用tbl_name AS alias_name或tbl_name alias_name赋予别名

  table_subquery可以作为子查询使用在FROM子句中,这样的子查询必须为其赋予别名。

三、连接类型

  INNER JOIN,内连接

显示左表和右表符合连接条件的记录

  在MySQL中,JOIN,CROSS JOIN和INNER JOIN是等价的。

四、连接条件

  使用ON关键字来设定连接条件,也可以使用WHERE来代替。

  通常使用ON关键字来设定连接条件,

  使用WHERE关键字来进行结果集记录的过滤。

  下面我们用一个简单的例子来证明一下这个问题。我们以商品表和商品类别表为例,操作命令及结果如下:

  我们先来查看一下两个表的表结构,分别如下:

SHOW COLUMNS  FROM   tdb_goods;

SHOW   COLUMNS   FROM   tdb_goods_cates;

  下面我们将这两张表进行内连接并查找其中的一些字段。

SELECT   goods_id,goods_name,cate_name    FROM   tdb_goods    INNER   JOIN   tdb_goods_cates   ON    tdb_goods.cate_id     =    tdb_goods_cates.cate_id;

  我们记着我们之前是23条数据,但是现在我们查到了22条记录,因为有一条记录不符合连接条件,就是那条我们最后插入的那个商品类别为13的那条记录,所以返回22条记录,OK,这就是所谓的简单的内连接。

时间: 2024-10-16 05:25:42

内连接INNER JOIN的相关文章

DB2数据库的外连接(OUTER JOIN),内连接(INNER JOIN)和交叉连接(CROSS JOIN)区别

1.交叉连接(CROSS JOIN):有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,也叫笛卡尔积,返回记录的个数应当是a和b表中符合记录的和. 显式:select [cols_list] from a cross join b where [condition] 隐式:select [cols_list] from a, b where [condition] 2.内连接(INNER JOIN):有两种,显式的和隐式的,返回连接表中符合连接条件和查询条件的数据行,和我们写普通的sql

数据库左连接left join、右连接right join、内连接inner join on 及 where条件查询的区别

join on 与 where 条件的执行先后顺序: join on 条件先执行,where条件后执行:join on的条件在连接表时过滤,而where则是在生成中间表后对临时表过滤 left join.right join.full join.inner join区别: left join:以左表为基准,根据on条件过滤连接生成临时表,on后面的过滤条件对左表无效 right join:以右表为基准,根据on条件过滤连接生成临时表,on后面的过滤条件对右表无效 full join:以左表为基准

关于SqlServer的内连接,外链接以及left join,right join之间的一些问题与区别。

就我个人理解通俗点来说内连接和外连接区别: 内连接 inner join或者 join (被默认为内连接) : 内连接的原理是:先进行语句判断和运行得出结果,然后在将结果连接起来,一般是横着连接. 外连接是 outer join或者left outer join 或者left join同样适用于right 外连接的原理是:先进行全连,然后在进行语句判断和运行得出结果. 以下内容发自 2017年5月25日0点05分  转载于http://www.jb51.net/article/39432.htm

SQL内连接-外连接join,left join,right join,full join

1.创建测试表test1及test2 SQL> CREATE TABLE TEST1(ID NUMBER,NAME VARCHAR2(20)); 表已创建. SQL> create table test2(id number, country varchar2(10)); 表已创建. INSERT INTO TEST1 VALUES(1,'name1'); INSERT INTO TEST1 VALUES(2,'name2'); INSERT INTO TEST1 VALUES(3,'name

Oracle表与表之间的连接方式(内连接:inner join 、外连接 全连接: full outer join、左连接:left outer join 、右连接:right outer join、自然连接:natural join)

1 --内连接:INNER JOIN 它表示返回两个表或记录集连接字段的匹配记录,表示两个表中相互包含的部分 2 select * from student inner join sc on student.sno=sc.sno; 3 --外连接(全连接):包含左.右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行.不符合条件的,以空值代替. 4 --全连接:表示两个表组合在一起,左右不相匹配时使用空值替换 5 select * from student full outer join

SQL 连接 JOIN 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接)

SQL 连接 JOIN 例解.(左连接,右连接,全连接,内连接,交叉连接,自连接) 最近公司在招人,同事问了几个自认为数据库可以的应聘者关于库连接的问题,回答不尽理想-现在在这写写关于它们的作用假设有如下表: 一个为投票主表,一个为投票者信息表-记录投票人IP及对应投票类型,左右连接实际说是我们联合查询的结果以哪个表为准-1:如右接连 right join 或 right outer join:我们以右边voter表为准,则左表(voteMaster)中的记录只有当其ID在右边(voter)中存

oracle 内连接(inner join)、外连接(outer join)、全连接(full join)

转自:https://premier9527.iteye.com/blog/1659689 建表语句: create table EMPLOYEE(EID NUMBER,DEPTID NUMBER,ENAME VARCHAR2(200)) create table DEPT(DEPTID NUMBER,DEPTNAME VARCHAR2(200)) oracle中的连接可分为,内连接(inner join).外连接(outer join).全连接(full join),不光是Oracle,其他很

Hibernate迫切左外连接和迫切内连接

•迫切左外连接: •LEFT JOIN FETCH 关键字表示迫切左外连接检索策略. –list() 方法返回的集合中存放实体对象的引用, 每个 Department 对象关联的 Employee  集合都被初始化, 存放所有关联的 Employee 的实体对象. –查询结果中可能会包含重复元素, 可以通过一个 HashSet 来过滤重复元素 •左外连接: –LEFT JOIN 关键字表示左外连接查询. –list() 方法返回的集合中存放的是对象数组类型 –根据配置文件来决定 Employee

mysql学习笔记(七)—— MySQL内连接和外连接

    MySQL内连接(inner join on) MySQL的内连接使用inner join on,它的效果跟使用where是一样的,如果联结的是两个表,那么需要左右的条件或者说字段是需要完全匹配的. 来看个例子:有两张表customers客户表和orders订单表,外键是cust_id,我们需要知道哪些客户有订单 select customers.cust_id,orders.order_num from customers , orders where customers.cust_i