2017-03-22 2 views
0

테이블이 두 개 있습니다 (operationoperationTask). : 이제 operation동일한 외래 키를 가진 모든 행을 선택하여 조건을 충족하십시오.

  • ID

operationTask

  • 상태 "1 부울 0", "외부 키로"

    • ID
    • 수 operation_id을 가지고있다 가정 해 봅시다

    이 두 테이블 간의 관계는 일대 다입니다.

    내가 그들의 모든 작업은 "operationtask"상태가 내가 시도 무엇 1.

    동일한 모든 작업을 선택합니다 :

    작동 :

    예를 들어

    SELECT * 
    FROM `operation` 
    WHERE operation.id = All(
        SELECT task.operation_id 
        FROM operationtask task 
        WHERE task.status=1 
        GROUP BY task.operation_id) 
    

    ID 
    --- 
    1 
    2 
    3 
    

    operationtask :

    ID operation_id status 
    --- ------------ ------ 
    1   1   1 
    2   1   0 
    3   2   1 
    4   2   1 
    5   3   0 
    6   3   0 
    

    결과는 다음과 같아야합니다

    작동 :

    ID 
    --- 
    2 
    
  • +0

    코드의 문제점은 무엇입니까? – Jens

    +0

    @Jens가 올바른 결과를 반환하지 않음 – Mohammad

    +0

    예상 결과와 결과가있는 샘플 데이터를 표시 할 수 있습니까? – Jens

    답변

    1
    select * 
    from operations o 
    where not exists (
         select 1 
         from operationtask t 
         where t.operation_id = o.id and t.status = 0) 
    
    관련 문제