1 多表查询前提
多表查询操作前提:
两张表间有一个相同的字段,才好进行有效的多表查询;
查询时列名前,加表名或表别名前辍;
为了简化SQL书写,可为表名定义别名,格式:from 表名别名;
2 多表连接查询分类
按数据显示方式分类:内连接和外连接;
2.1 内连接
内连接:只返回满足连接条件的数据。
写法1:
Select column1,column2, column3, column4 from tablename1,tablename2 where tablename1.column1=tablename2.column1;
写法2:
Select column1,column2, column3, column4 from tablename1 join tablename2 on tablename1.column1=tablename2.column1;
2.2 外连接
外连接:除了返回满足连接条的行以外,还返回左(右)表中,不满足条件的行,
称为左(右)连接即返回所有数据(左表数据+NULL或者右表数据+NULL);
两个表的查询中,使用外连接可以查询另一个表或者两个表中不满足连接条件的数据;
外连接的符号是(+),(+)放在字段名后,(+)对面的那个表,会全部显示。
右连接:
写法1:
Select column1,column2,column3, column4 from tablename1,tablename2 where tablename1.column1(+)=tablename2.column1;
写法2:
Select column1,column2, column3, column4 fromtablename1 right join tablename2 on tablename1.column1=tablename2.column1;
左连接:
写法1:
Select column1,column2,column3, column4 from tablename1,tablename2 where tablename1.column1=tablename2.column1(+);
写法2:
Select column1,column2, column3, column4 fromtablename1 left join tablename2 on tablename1.column1=tablename2.column1;
全连接(满连接):
Select column1,column2, column3, column4 fromtablename1 full join tablename2 ontablename1.column1=tablename2.column1;