求SQL语句关系传递规则

来源:百度知道 编辑:UC知道 时间:2024/06/11 01:04:58
假设有3张表: A(字段: x , y , z); B(x , v, n) ; C( x ,m, q)

SQL语句1 :
select * from A, B, C where A.x = '123' and A.x = B.x and B.x = C.x;

SQL语句2 :
select * from A, B, C where A.x = '123' and A.x = B.x and A.x = C.x;

SQL语句3 :
select * from A, B, C where A.x = '123' and B.x = A.x and C.x = B.x;

SQL语句4 :
select * from A, B, C where A.x = '123' and B.x = A.x and C.x = A.x

请问以上4种关系传递方式哪种写法规范、效率高?如果都不好,应该怎样写?

如果没有条件 A = '123' 时 ,三张表的关系应该如何处理?

对于 关联表 查询。
应当先写
from A,B,C
Where B.x = A.x
and C.x = A.x


and A.x = '123'

实际的数据库操作是:先把三张表根据关联字段链接起来形成新的结果集,然后根据A.x='123'在结果集中查找匹配记录。

————————————————————————
回答:1.效果一样。
2.找不到A='123'即找不到记录,不会出现楼主的疑虑。原理见上文。

from A,B,C
Where
(B.x = A.x
and B.x = C.x )
and A.x = '123'
没有A='123'三张表你要什么样的对应关系?
也就是说"三张表的关系应该如何处理?" 不明白你要做什么!

select * from A,B,C where A.x=B.x and B.x=C.x and x='123'