请问:
如:有两个表a,b 表a中有sno,sex两列 表b中有sno,score两列
1,当使用:SELECT sno FROM a,b 语句执行查询时 会
报错:列名 'sno' 不明确。
单独使用不会报错 如:SELECT sno FROM a
明确指定哪个表中的sco列不报错 如:SELECT a.sno FROM a,b
2,当使用:SELECT sex,score FROM a,b 语句执行查询时
不会报错 会正确显示a中的sex列和b中的score列也就是说当从多个表中查询某些列的时候 可以直接查询出每个表特有的列 也可以查询出多个表共有的列 只要指定列名所属的表即可 问题:既然可以直接查询出所需的列 那为什么还要使用连接查询呢 连接查询该怎么理解呢
谢谢
如:有两个表a,b 表a中有sno,sex两列 表b中有sno,score两列
1,当使用:SELECT sno FROM a,b 语句执行查询时 会
报错:列名 'sno' 不明确。
单独使用不会报错 如:SELECT sno FROM a
明确指定哪个表中的sco列不报错 如:SELECT a.sno FROM a,b
2,当使用:SELECT sex,score FROM a,b 语句执行查询时
不会报错 会正确显示a中的sex列和b中的score列也就是说当从多个表中查询某些列的时候 可以直接查询出每个表特有的列 也可以查询出多个表共有的列 只要指定列名所属的表即可 问题:既然可以直接查询出所需的列 那为什么还要使用连接查询呢 连接查询该怎么理解呢
谢谢
解决方案 »
- 上次去面试别人问我有没有对两个数据库操作的经验!
- sql2008报表服务器问题
- 怎样读取表中某一列的数据,并将其赋给一个数组
- 全文检索问题
- sqlserver2012安装出错怎么解决
- 讨论:SQL Server 如何实现套账功能?
- 关于SQL server 2000 enterprise 在winows 2003 web edition 下的安装
- 寻找以下电子图书。。。。分数不够再给
- SQL Server,有一表的字段是自动增长标志位(Id),如何在插入一新纪录时同时获得Id值,大家提提可行方案吧
- :访问SQL Server时,其所占的虚拟内存和内存都在不停的增加,丝毫不下降,怎么办?怎么办???
- 请问“SQL Server”和“SQL Native Client” 有什么区别吗?
- my sql 的问题
SELECT
A1.SNO,
A1.SEX,
B1.SNO,
B1.SCORE
FROM
A AS A1,
B AS B1
2:SELECT sex,score FROM a,b得到兩張表的迪卡尔集
如:有两个表a,b 表a中有sno,sex两列 表b中有sno,score两列
1,当使用:SELECT sno FROM a,b 语句执行查询时 会
报错:列名 'sno' 不明确。
单独使用不会报错 如:SELECT sno FROM a
明确指定哪个表中的sco列不报错 如:SELECT a.sno FROM a,b
------------------------
select a.sno , b.sno from a,b当连接的表中有相同的列时,需要指明获取哪个表的列.
2,当使用:SELECT sex,score FROM a,b 语句执行查询时
不会报错 会正确显示a中的sex列和b中的score列 也就是说当从多个表中查询某些列的时候 可以直接查询出每个表特有的列 也可以查询出多个表共有的列 只要指定列名所属的表即可 问题:既然可以直接查询出所需的列 那为什么还要使用连接查询呢 连接查询该怎么理解呢 因为sex, score列分属不同的表,且各表中只有一个sex,score列,所以可以直接获取,不需要指明表名.连接的作用是指带条件的查询.SELECT sex,score FROM a,b
SELECT sex,score FROM a,b where a.id = b.id
SELECT sex,score FROM a,b where a.id = b.id and a.date <= getdate()
1,当使用:SELECT sno FROM a,b 语句执行查询时 会
报错:列名 'sno' 不明确。
这个地方有由于表a和表b中都有sno这个列,所以电脑不知道你这个地方表示的是那一个。
单独使用不会报错 如:SELECT sno FROM a
由于这个地方只有一个列为sno,所以不会报错
明确指定哪个表中的sco列不报错 如:SELECT a.sno FROM a,b
已经明确的指定了是那一列
2,当使用:SELECT sex,score FROM a,b 语句执行查询时
不会报错 会正确显示a中的sex列和b中的score列
也就是说当从多个表中查询某些列的时候 可以直接查询出每个表特有的列 也可以查询出多个表共有的列 只要指定列名所属的表即可
问题:既然可以直接查询出所需的列 那为什么还要使用连接查询呢 连接查询该怎么理解呢
SELECT sex,score FROM a,b
显示的结果是sex的每一个数据分别对应的score中的每一个数据,也就是显示的数目条数为a表的数目条数乘以b表的数目条数
连接查询之后可以取消掉很多多的查询就结果。
比如:
SELECT sex,score FROM a,b where a.sno=b.sno
出来的结果是只有a表的列sno与b表的列sno相等的时候才会显示。
SELECT sex,score FROM a,b where a.id = b.id