자체 조인과 교차 조인 할 때 교차 조인에서 특정 열을 참조하는 방법을 알아 내려고합니다. 십자가 조인 테이블 전체에 별칭도 주어 지므로 다른 하위 쿼리와 자연스럽게 조인되기 때문에 열 이름에 액세스하는 데 문제가 있습니다.SQL/PSQL 같은 테이블을 서로 조인 한 후 where 절에서 열 이름을 참조하는 중
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;
문제는 그 q0.sid이 모호하기 때문에 t1.sid 및 s3.sid을 비교하기 위해 노력 ''절 : 여기에 코드입니다. 교차 결합에서 해당 열에 어떻게 액세스합니까?
열 [별칭] (https://www.tutorialspoint.com/postgresql/postgresql_alias_syntax.htm)을 사용하십시오 (예 : SELECT s5.sid AS s5_sid, s6.sid AS s6_sid'). – Serge
여기는 문제가 아닙니다. 나는 첫 번째 교차점 내부에서 t1.sid와 s3.sid에 접근 할 수 없다. 끝 부분에서 클래스가있는 곳을 위해 –
'(t1 교차 결합 학생 s3 교차 결합 학생 s4 구매)'을 리팩토링해야한다. 어때요? (SELECT t1.sid AS t1_sid, s3.sid AS s3_sid, s4.sid AS s4_sid FROM 구입 t1 CROSS JOIN 학생 s3 CROSS JOIN 학생 s4'을 구입 하시겠습니까? – Serge