select * from A a1 join A a2 where a1.pid=a2.pid
前提是表A要有自参照外键
内连接就是不同的表直接的等值连接。。。。
比如
select * from A inner join B on A.xx=B.yy where 条件
假设在【成绩表】有【主键ID】【学生姓名】【课程名称】【成绩】等字段。现在要查询 “语文成绩>=数学成绩”的学生姓名,这时就可以使用自连接查询:
select 【学生姓名】
from 【成绩表】 AS a,【成绩表】 AS b
where a.【主键ID】=b.【主键ID】
and a.【成绩】>=b.【成绩】
and a.【课程名称】='语文'
and b.【课程名称】='数学'
自连接是指使用表的别名实现表与其自身连接的查询方法。
自然连接就是把两个表中相同属性"衔接",属性值相同的就保留下来, *** 作方法如下:
1、首先在数据库中,有时需要用到两张或以上表的数据,就可以考虑采用连接查询。
2、这时要查找哪位同学选了那门课,肯定要两表连接。
3、连接表做的是对两表的笛卡尔积,明显不是要的结果。
4、因此需要连接条件来判定。
5、其实不采用连接查询也是可以的,在关系数据库中的子查询也是极为广用。
6、但是会发现,如果作为子查询是没有办法投影出不同表的不同列,因此,当需要投影多张表中的列,就必须要用连接查询,就完成了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)