Я пытаюсь понять, как ссылаться на определенные столбцы из перекрестного соединения, когда вы перекрестно соединяете таблицу с самой собой. Таблице перекрестного соединения в целом также дается псевдоним, поэтому у меня возникают проблемы с доступом к именам столбцов, поскольку она также естественным образом связана с другим подзапросом. Вот код:
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, потому что q0.sid неоднозначен. Как получить доступ к этим столбцам из перекрестного соединения?
SELECT s5.sid AS s5_sid, s6.sid AS s6_sid
. - person Serge   schedule 02.11.2017(buys t1 cross join student s3 cross join student s4)
. Как насчет чего-то вроде(SELECT t1.sid AS t1_sid, s3.sid AS s3_sid, s4.sid AS s4_sid FROM buys t1 CROSS JOIN student s3 CROSS JOIN student s4
? - person Serge   schedule 02.11.2017