oscar999的专栏

通技术,懂管理,爱分享

MYSQl 连接

SQL标准中规划的(Join)联结大致分为下面四种:

1.  内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。

2.  外联结:分为外左联结和外右联结。

左联结AB表的意思就是将表A中的全部记录和表B中联结的字段与表A的联结字段符合联结条件的那些记录形成的记录集的联结,这里注意的是最后出来的记录集会包括表A的全部记录。

右联结AB表的结果和左联结BA的结果是一样的,也就是说:

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 中的资料为基础来显示资料

 


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oscar999/article/details/1802578
个人分类: 150-Db SQL语言
上一篇 java面试常见问题
下一篇servlet过滤器入门
想对作者说点什么? 我来说一句

EF连接MySql数据库

2018年03月24日 35.34MB 下载

gy_tools_PHP

2009年12月28日 438B 下载

mysql连接工具

2017年11月16日 24.09MB 下载

mysql-connector-net-6.0.2-src.zip

2009年04月19日 1.33MB 下载

mysql-connect-net-8.0

2018年05月22日 2.29MB 下载

vc++ 连接MySql

2009年03月30日 79KB 下载

数据库需要的代码

2018年05月04日 2KB 下载

net连接mysql

2018年07月17日 105KB 下载

heidisql,mysql连接工具

2017年09月21日 3.38MB 下载

mysqlyog 连接mysql数据库

2008年09月01日 8.81MB 下载

没有更多推荐了,返回首页

关闭
关闭