有2个问题请教高人1,on 和WHERE 同是用的时候为什么条件写错为了会不对啊?ON 和WHERE 的区别、?
2 为什么 FROM A JOIN B on/where A.C(这个为什么会报错) ,b.c(这个就是对的)
2 为什么 FROM A JOIN B on/where A.C(这个为什么会报错) ,b.c(这个就是对的)
解决方案 »
- 如何用一条sql语句查询每门课程的成绩前两名?
- 送分了!
- 用触发器实现两库之间数据同步
- 急 Log Explorer for SQL 2005 代理商的联系方式,最好是中国,买个正版 速度
- where 条件对varchar和char相同长度字符串的比较效率相同么?
- eclipse中连接mysql数据库出现1045错误,不会改!!
- sql语句查询问题
- 我从一个数据库中中复制了一份日志出来,但是发现记录的时间很短?
- 查找一个区间的记录
- 竹兄,小弟想学用powerdesigner,如果方便的话,可否发个例子给我?([email protected])
- 在本地通过sql语句,删除远程数据和插入数据,先感谢前辈了!
- 同一个服务器下有两个数据库,想让一个数据库中已存在的一个视图关联灵一个数据库中的一张表怎么实现?
在使用 on和where条件的区别如下:
1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回表中的记录。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有join的含义(必须返回表的记录)了,条件不为真的就全部过滤掉。
on可适用于多条记录,asp批量处理时候常用.where常见于单条记录读取查询.
而且on一般跟join连用的,where是条件语句
Transact-SQL语言是基于集合(set-based)查询的语言。
在实践中,查询的实际物理处理可能与逻辑处理有很大不同。
1、FROM
2、ON
3、JOIN--做笛卡尔乘积
4、WHERE
5、GROUP BY
6、WITH(cube | rollup )
7、HAVING
8、SELECT 列表
9、DISTINCT
10、ORDER BY
逻辑查询处理的步骤序号:
(8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) WITH {CUBE | ROLLUP}
(7) HAVING <having_condition>
(10) ORDER BY <order_by_list>
仅供参考
但是left join right join 是有区别的。
条件
3个以上的多表查询的时候 on里面写的条件我觉得最主要的就是建立一个同等的条件,如果写在WHERE 里面会出错。。