我试图弄清楚当您与自身交叉连接表时如何从交叉连接中引用某些列。整个交叉连接表也被赋予了一个别名,这就是为什么我无法访问列名的原因,因为它也与另一个子查询自然连接。这是代码:
select q0.sid, q0.sname
from (buys t1 cross join student s3 cross join student s4) q0 natural join
(select s5.sid, s5.sname, s6.sid, s6.sname, t3.sid, t3.bookno
from buys t2 cross join student s5 cross join student s6 cross join buys t3
where t2.sid = s5.sid and t3.bookno = t2.bookno) q1
where t1.sid = s3.sid;
问题在于尝试比较 t1.sid 和 s3.sid 的“where”子句,因为 q0.sid 不明确。如何从交叉连接访问这些列?