在SQL标准中规划的(Join)联结大致分为下面四种:
1. 内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。
2. 外联结:分为外左联结和外右联结。
左联结A、B表的意思就是将表A中的全部记录和表B中联结的字段与表A的联结字段符合联结条件的那些记录形成的记录集的联结,这里注意的是最后出来的记录集会包括表A的全部记录。
右联结A、B表的结果和左联结B、A的结果是一样的,也就是说:
Select A.name B.name From A Left Join B On A.id=B.id
和Select A.name B.name From B Right Join A on B.id=A.id执行后的结果是一样的。
3.全联结:将两个表中存在联结关系的字段的所有记录取出形成记录集的联结(这个不需要记忆,只要是查询中提到了的表的字段都会取出,无论是否符合联结条件,因此意义不大)。
4.无联结:不用解释了吧,就是没有使用联结功能呗,也有自联结的说法。
新建两张表:
create table emp(
id int not null primary key,
name varchar(10)
);
create table emp_dept(
dept_id varchar(4) not null,
emp_id int not null,
emp_name varchar(10),
primary key (dept_id,emp_id));
1.左连接(left join)
挑出左边的 table emp 中的所有资料,即使 emp_dept 中没有的资料也挑出来,没有的就用 NULL 来显示,
也即显示资料是以左边的 table emp 中的资料为基础
select a.id,a.name,b.dept_id
from emp a left join emp_dept b on (a.id=b.emp_id);
挑出 table emp 中有而 table emp_dept 中没有的人员资料
select a.id,a.name,b.dept_id
from emp a left join emp_dept b on (a.id=b.emp_id)
where b.dept_id IS NULL;
2.右连接(right join)
挑资料时以右边 table emp_dept 中的资料为基础来显示资料
分享到:
相关推荐
Mysql 连接资源Jar,Mysql连接jar包.
MySQL连接工具 绿色版的 很简单的操作MySQL数据库
nodejs封装好的mysql数据库模块,使用mysql连接池以及附带百万mysql测试数据,实现mysql数据库的增删改查功能,使用方法很详细。
mysql连接驱动jar包
主要给大家介绍了关于MySQL连接抛出Authentication Failed错误的分析与解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
非常好用的mysql连接工具支持多种安全连接方式,附带key
易语言MYSQL连接池模块源码,MYSQL连接池模块,GetThis,初始化,关闭类线程,线程_测试,其他_附加文本,连接池初始化,取mysql句柄,释放mysql句柄,取空闲句柄数,销毁连接池,取_类_函数地址,取指针内容_整数,取变量地址_...
MySql连接字符串问题,我搞了半天。对于初学者来说还是有用的。
最新MySQL连接jar包(mysql-connector-java-8.0.16.jar)
mysql连接工具nav150
包含两个版本的驱动包:mysql-connector-java-5.0.3-bin.jar和mysql-connector-java-5.1.39-bin.jar
mac下的mysql连接工具,navicat,支持最新的mojave版本。亲测可用。希望大家能用的给个好评。
网络收集 C++ MYSQL 连接池 可编译运行 需要boost 和 mysql c++ connector
CH07MySQL连接器JDBC和连接池.ppt
线程池和mysql连接池的实现,可以在ubuntu12.04下完美实现,mysql连接池需要用到mysql-connector c++
关于MySql连接jsp的驱动问题,包括连接的详细步骤,里面附有截图,还有各个注意事项,还附加了一个测试代码,希望对大家有所帮助
java_mysql连接的jar包
用于myeclipse 连接Mysql的数据库架包
mysql连接工具mysql连接工具mysql连接工具mysql连接工具mysql连接工具mysql连接工具
MySql连接数据库(方法、代码、用到的所有组件)