SQL问题 就是不明白X.C#='C1' AND X.S#=S.S# AND Y.C#=='C3' AND Y.S#=S.S#。

来源:百度知道 编辑:UC知道 时间:2024/05/23 11:20:19
SELECT SN
FROM S
WHERE EXISTS
(SELECT *
FROM SC X,SC Y
WHERE X.C#='C1' AND X.S#=S.S# AND Y.C#=='C3' AND Y.S#=S.S#)

问题是这样的:

整个查询我大概看明白了。就是不明白X.C#='C1' AND X.S#=S.S# AND Y.C#=='C3' AND Y.S#=S.S#。这句话是什么意思,X.C#='C1' 代表什么,X.S#=S.S#代表什么

这个语句使用了相关子查询的方式,内部的子查询有使用了自身连接,即sc表的自身连接,在自身连接中使用了两个别名x和y。X.C#='C1' AND X.S#=S.S# AND Y.C#=='C3' AND Y.S#=S.S#用来设置连接条件。X.S#=S.S#中,s表示外查询表,因此这个条件实际调用了外表的字段,这也是相关子查询的特点,相当于表连接。

SELECT SN
FROM S
WHERE EXISTS
(SELECT *
FROM SC X,SC Y
WHERE X.C#='C1' AND X.S#=S.S# AND Y.C#=='C3' AND Y.S#=S.S#)

s

dsf