>  Q&A  >  본문

하위 쿼리에는 항상 내 쿼리에 결과가 있습니다.

MySQL에는 두 개의 테이블이 있습니다:

표 1 - 작업 순서

ID 수량
1 2
2 1

표 2 - ITEMSINWORKORDERS

ID 작업주문
1 1
2 1
3 2

질문이 있습니다:

으아악

원래는 명령문에서 왼쪽 외부 조인을 사용하고 있었기 때문에 빈 집합을 얻기 위해 내부 조인으로 변경했습니다. 항목이 누락된 작업 주문이 없는 경우 빈 세트를 반환하도록 하려면 어떻게 해야 합니까?

이 쿼리의 목적은 모든 항목이 입력되지 않았고 WORKORDERS 테이블에 입력된 명목 수량이 해당 작업 주문에 해당하는 ITEMSINWORKORDERS 레코드의 수량보다 큰 모든 작업 주문을 찾는 것입니다. 빈 세트가 반환될 것으로 예상했습니다. 그런데 실제로 제가 얻은 것은

ID NOMINAL_QTY ENTERED_QTY
NULL NULL 0

원래는 명령문에서 왼쪽 외부 조인을 사용하고 있었기 때문에 빈 집합을 얻기 위해 내부 조인으로 변경했습니다.

추가됨: 이 문제를 해결하기 위해 다음과 같이 NULLIF를 사용해 보았습니다.

으아악

하지만 결과는 실망스럽습니다.

ID NOMINAL_QTY ENTERED_QTY
NULL NULL NULL

P粉677684876P粉677684876404일 전483

모든 응답(1)나는 대답할 것이다

  • P粉269847997

    P粉2698479972023-09-12 20:45:22

    귀하의 쿼리가 어떤 행도 반환하지 않기 때문에 무엇을 기대하시는지 모르겠습니다.

    하지만 계산 작업을 하려면 GROUP BY를 사용해야 합니다.

    db<>fiddle 여기

    회신하다
    0
  • 취소회신하다