>

왼쪽 테이블을 오른쪽 테이블과 조인하고 오른쪽 테이블이 일치하지 않더라도 모든 왼쪽 테이블 행을 유지해야합니다. ... 표준 왼쪽 조인.

기준에 맞는 왼쪽 테이블 행만 포함

기준에 맞는 올바른 테이블 행만 포함하십시오. 찾을 수 없으면 조인에서 null을 사용하십시오.

null이 아닌 경우 오른쪽 테이블의 열을 기준으로 정렬하지만 null 인 경우 항목을 풀지 않습니다.

가상 SQL에서 나는 원한다

(
    select
        *
    from
        work_item
    where
        work_item.id_work_item_queue = 5
) as t1
(
    select
        *
    from
        ai_guess
    where
        ai_guess.AI_Guess_Date = '2019:08:09:19:49:02'
) as t2
select
    t1.*,
    t2.*
from 
    t1
    left join t2 on t1.id_word_crop = t2.id_word_crop
ORDER BY
    ai_guess.text

솔루션에 가까워지는 것은

SELECT 
    work_item.id_work_item,
    work_item.id_word_crop,
    ai_guess.text
FROM
    work_item
    LEFT JOIN ai_guess ON
    work_item.id_word_crop = ai_guess.id_word_crop
WHERE
    work_item.id_work_item_queue = 5
    AND
    ai_guess.AI_Guess_Date = '2019:08:09:19:49:02'
ORDER BY
    ai_guess.text

이 생성

id_work_item, id_word_crop, text
'4', '224343', 'eie'
'3', '224342', 'geüichrt'
'2', '224341', 'rschaunig'
'6', '224345', 'VSnge'

하지만 왼쪽 테이블에서 누락되어 입력되었습니다

id_work_item, id_word_crop
'5', '224344'

왼쪽 테이블에는

SELECT
    id_work_item,
    id_word_crop
FROM
    work_item
where
    id_work_item_queue = 5

   id_work_item, id_word_crop
    '2', '224341'
    '3', '224342'
    '4', '224343'
    '5', '224344'
    '6', '224345'

오른쪽 테이블에 일치하는 항목이 없으므로 왼쪽 항목이 삭제되었지만 왼쪽 항목을 유지하고 싶습니다.

SELECT
    *
FROM
    ai_guess
where
    id_word_crop = 224344

널을 반환


  • 답변 # 1

    ai_guess 에서 기준을 이동   WHERE 에서 테이블   ON 로  조항 :

    SELECT
        work_item.id_work_item,
        work_item.id_word_crop,
        ai_guess.text
    FROM work_item
    LEFT JOIN ai_guess
        ON work_item.id_word_crop = ai_guess.id_word_crop AND
           ai_guess.AI_Guess_Date = '2019:08:09:19:49:02'
    WHERE
        work_item.id_work_item_queue = 5
    ORDER BY
        ai_guess.text;
    
    

    지금 일어나는 일은 조인이 원하는 중간 결과를 생성하지만 WHERE 입니다.  절이 추측 날짜가 일치하지 않으므로 누락 된 레코드를 필터링합니다. 이 제한을 결합 기준에 배치하면 해당 레코드가 조기에 제거되지 않습니다.

관련 자료

  • 이전 javascript - 대상 요소에 관계없이 배열 onClick의 마지막 요소로 설정되는 setState
  • 다음 asterisk - 통화중인 기기의 대기 상태를 확인합니다