mysql的多表连接

笛卡尔积 select * from A,B;不需要任何条件,两个表相乘。

连接类型:交叉连接,内连接,外连接。

(1)交叉连接,基本就是和笛卡尔积一样的连接。select * from A cross join B where .....

(2)内连接:自然连接,等值连接,非等值连接。

a.自然连接:在连接条件中使用=运算符比较连接列的列值,但是删除连接表中的重复列。

b.等值连接:不删除重复的列,A inner join B on a.id=b.id(也可以隐式 A,Bwhere a.id=b.id)A,B的顺序有关系。

c.非等值连接:用<,>等运算符连接两个表。

(3)外连接:左外连接,右外连接,全外连接。

a.左外连接 A left outer join B on A.id=B.id

b.右外连接 A left outer join B on A.id=B.id

c.全外连接 A full outer join on A.id=B.id

时间: 2024-10-10 19:10:46

mysql的多表连接的相关文章

MySQL JOIN 多表连接

除了常用的两个表连接之外,SQL(MySQL) JOIN 语法还支持多表连接.多表连接基本语法如下: 1 ... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON condition INNER|LEFT|RIGHTJOIN table3 ON condition ... JOIN 多表连接实现了从多个表中获取相关数据,下面是三个原始数据表: article 文章表: aid title content uid tid 1 文章1 文章1正文内容… 1 1

mysql续集4-多表连接

1.多表连接查询 1.1准备表 #建表 create table department( id int, name varchar(20) ); create table employee( id int primary key auto_increment, name varchar(20), sex enum('male','female') not null default 'male', age int, dep_id int ); #插入数据 insert into departmen

mysql 三个表连接查询

权限表(permission)10 字段名称 类型 约束 描述 authorityid integer Pk not null 权限流水号id    PK userNameId int not null 用户名id   FK functionid integer Not null 功能 id    FK lookPermission int not null 浏览 addPermission int not null 添加 editPermission int not null 编辑 delet

表连接的优化(五)

---title: 不懂SQL优化?那你就OUT了(五) MySQL如何优化--表连接 date: 2018-11-24 categories: 数据库优化--- 上一遍我们讨论了where 子句的优化,这一遍我们来讨论一下表连接的优化 我们知道在数据库中表连接有两种方式: 1. 内连接(inner join) 2. 外连接(左外连接(left join), 右外连接(right join),全外连接(full join-->mysql 不支持全外连接) ### 什么是表连接 表连接就是指将多个

Mysql 表连接查询

1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接.     内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和courses表中学生标识号相同的所有行.       2.外联接.外联接可以是左向外联接.右向外联接或完整外部联接.     在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:     1)LEFT  JOIN或LEFT OUTER JOIN     左向外联接的结果集包括  LEF

Mysql表连接

当需要同时显示多个表中的字段时,就可以用表连接来实现这样的功能. 从大类上分,表连接分为内连接和外连接,它们之间的最主要区别是內连接仅选出两张表中互相匹配的记录,而外连接会选出其他不匹配的记录.我们最常用的是内连接. 例如:查询出所有雇员的名字和所在部门名称,因为雇员名称和部门分别存放在表emp 和dept 中,因此,需要使用表连接来进行查询: select ename,deptname from emp,dept where emp.deptno=dept.deptno; ename是表emp

MySQL多表查询之外键、表连接、子查询、索引

一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的.所以说,如果谈到了外键,一定是至少涉及到两张表.例如下面这两张表: 上面有两张表:部门表(dept).员工表(emp).Id=Dept_id,而Dept_id就是员工表中的外键:因为员工表中的员工需要知道自己属于哪个部门,就可以通过外键Dep

MySQL数据库学习笔记(六)----MySQL多表查询之外键、表连接、子查询、索引

注:本文转自:http://www.cnblogs.com/smyhvae/p/4042303.html 本章主要内容: 一.外键 二.表连接 三.子查询 四.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的.所以说,如果谈到了外键,一定是至少涉及到两张表.例如下面这两张表: 上面有两

MySQL Study之--MySQL 表连接

MySQL Study之--MySQL 表连接 一.Join语法概述 join 用于多表中字段之间的联系,语法如下: ... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON condition table1:左表:table2:右表. JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录. LEFT JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录