이전에 요청한 것과 비슷한 질문을하지만 두 개 이상의 테이블을 보지 못했습니다. 그리고 차이가있는 것 같습니다.SQL EXISTS는 두 개 이상의 테이블이있는 모든 행을 반환합니다.
은 내가 필드를 필요가있는 세 개의 테이블을 가지고 내가 customerID
및 orderID
필요 customers
내가 customerID
를 얻을 수있는 orders
및 orderID
내가 얻을 수있는 lineitems
에서 orderID
및 quantity
(= 수량 주문). 그것은 나에게 모든 행의 수를 반환하는 이유를 이해가 안
SELECT COUNT(DISTINCT custID)
FROM customers
WHERE EXISTS(
SELECT *
FROM customers C, orders O, lineitems L
WHERE C.custID = O.custID AND O.orderID = L.orderID AND L.quantity > 2
);
:
나는 많은 고객 그래서 기본적으로 동일한 항목의 2 개 이상 구입과 수량>이 방법을 찾고 싶어요. > 2 조건을 검사하기 전에 서브 쿼리를 상관시키고 있습니까? 아닙니다.
저는 초보자이기 때문에 필요할 경우 근본적으로 설명해 주시면 감사하겠습니다. 감사.
다시 고객을 반복함으로써 오류가 발생 했습니까? 또는'FROM ... WHERE ... '대신'JOIN'을 사용하면 여러 테이블을 사용할 때 차이가 생깁니 까? – sandboxj
@sandboxj 예 오류는 'customers'테이블을 다시 사용하기 때문에 발생합니다. 이는 상관 관계를 상쇄합니다. 쉼표로 분리 된 테이블을 가진 구식 구문 대신 위의 쿼리 에서처럼 현대적인'JOIN' 구문을 사용하는 것이 더 좋습니다. –