数据库中关于表的连接问题
2013-03-13 20:04
393 查看
--1内连接(两个表中相匹配的那些记录)
--2外联接
--2.1左外联接(把左表中 left join关键字左边的表)中的全部记录都显示出来,对于右表中能找到匹配的记录,显示对应匹配数据,对右表中找不到的匹配记录显示为null。
--2.2右外联接 left [outter] join,right [outter] join.
--左外联接和右外联接都是分两步查询出结果的,第一:找到匹配数据,第二:填充不匹配的数据为null。(注意,是有先后顺序的。)
----Cross Join交叉联接------
select
*
from Student,Score
----自联接------------------
select
*
from Student
inner join
(select sName,sAge,sId FROM Student
where sAge>10
)as TS1
ON Student.sId=TS1.sId
-- -7----report 2------
SELECT
*
FROM
(select
sId,
sName,
sAge,
Score.*
from Student
left outer join Score
ON Score.studentId=Student.sId
) as Tbl
WHERE ScoreId is null
---右外--
select
sId,
sName,
sAge,
Score.*
from Student
right outer join Score
ON Score.studentId=Student.sId
--- ---------------
select
sId,
sName,
sAge,
Score.*
from Score
right outer join Student
ON Score.studentId=Student.sId
select
sId,
sName,
Score.*
FROM Student
LEFT OUTER JOIN Score
on Score.studentId=Student.sId
--重做:查询出所有没有参加考试的同学的学生编号,姓名,考试成绩。
select
sId,
sName,
Score.*
FROM Student
LEFT OUTER JOIN Score
on Score.studentId=Student.sId
where Score.scoreId is null
--2.2右外联接
select
Score.*,
sId,
sName
from Student
right outer join Score on
Score.scoreId=Student.sId
------------
select
Score.*,
sId,
sName
from Score
right outer join Student on
Score.scoreId=Student.sId
----Cross Join 交叉联结-------
select * from
Student,Score
-------自联结------------------
select *
from Student
inner join(select sId,sName,sAge from Student where sAge>=10)as Tbl1
on Student.sId=Tbl1.sId
--2外联接
--2.1左外联接(把左表中 left join关键字左边的表)中的全部记录都显示出来,对于右表中能找到匹配的记录,显示对应匹配数据,对右表中找不到的匹配记录显示为null。
--2.2右外联接 left [outter] join,right [outter] join.
--左外联接和右外联接都是分两步查询出结果的,第一:找到匹配数据,第二:填充不匹配的数据为null。(注意,是有先后顺序的。)
----Cross Join交叉联接------
select
*
from Student,Score
----自联接------------------
select
*
from Student
inner join
(select sName,sAge,sId FROM Student
where sAge>10
)as TS1
ON Student.sId=TS1.sId
-- -7----report 2------
SELECT
*
FROM
(select
sId,
sName,
sAge,
Score.*
from Student
left outer join Score
ON Score.studentId=Student.sId
) as Tbl
WHERE ScoreId is null
---右外--
select
sId,
sName,
sAge,
Score.*
from Student
right outer join Score
ON Score.studentId=Student.sId
--- ---------------
select
sId,
sName,
sAge,
Score.*
from Score
right outer join Student
ON Score.studentId=Student.sId
select
sId,
sName,
Score.*
FROM Student
LEFT OUTER JOIN Score
on Score.studentId=Student.sId
--重做:查询出所有没有参加考试的同学的学生编号,姓名,考试成绩。
select
sId,
sName,
Score.*
FROM Student
LEFT OUTER JOIN Score
on Score.studentId=Student.sId
where Score.scoreId is null
--2.2右外联接
select
Score.*,
sId,
sName
from Student
right outer join Score on
Score.scoreId=Student.sId
------------
select
Score.*,
sId,
sName
from Score
right outer join Student on
Score.scoreId=Student.sId
----Cross Join 交叉联结-------
select * from
Student,Score
-------自联结------------------
select *
from Student
inner join(select sId,sName,sAge from Student where sAge>=10)as Tbl1
on Student.sId=Tbl1.sId
相关文章推荐
- 关于使用navicat for mysql在建立数据库连接时出现的2003 can't connect to mysql server on'localhost'(10038)问题
- 关于插件项目中连接数据库的问题
- 关于数据库连接字符串问题(第五部分连接access-2007)
- 关于tomcat启动超时 和mysql等数据库连接的问题
- 关于利用JDBC连接sqlserver中数据库的问题
- qt5.8中关于mysql5.5数据库连接问题
- 关于数据库连接数问题(为什么要关闭数据库连接,可以不关闭吗?)
- Web.config中关于数据库连接字符串配置问题
- 关于数据库连接字符串问题(第一部分连接SQL Server 2008)
- 关于Java图形化连接微软SQL server(含2005,2008,2012等)数据库的问题
- 关于 Oracle 连接数据库 二次登陆问题
- 关于arcgis连接 sde数据库的问题
- 关于数据库优化2——关于表的连接顺序,和where子句的前后顺序,是否会影响到sql的执行效率问题
- 关于struts 连接数据库的问题
- Windows下,关于Oracle新建数据库之后,无法通过 / as sysdba 连接到orcl 问题
- 数据库中间件2:关于连接异构数据库的性能问题
- 关于利用JDBC连接sqlserver中数据库的问题
- 关于数据库技术的连接查询问题
- 关于SQL server2008连接不上数据库引擎问题