SQL解答-(5)JOIN
5767 ワード
Programmers SQL
5. JOIN
JOIN
SELECT ao.ANIMAL_ID, ao.NAME
FROM ANIMAL_OUTS ao
LEFT JOIN ANIMAL_INS ai ON ai.ANIMAL_ID=ao.ANIMAL_ID
WHERE ai.ANIMAL_ID IS NULL;
その他の説明:ai.ANIMAL IDがNULLの場合のみ出力します. SELECT ai.ANIMAL_ID, ai.NAME
FROM ANIMAL_INS ai
LEFT JOIN ANIMAL_OUTS ao
ON ai.ANIMAL_ID=ao.ANIMAL_ID
WHERE ai.DATETIME>ao.DATETIME
ORDER BY ai.DATETIME
SELECT ai.NAME, ai.DATETIME
FROM ANIMAL_INS ai
LEFT JOIN ANIMAL_OUTS ao
ON ai.ANIMAL_ID=ao.ANIMAL_ID
WHERE ao.DATETIME IS NULL
ORDER BY ai.DATETIME
LIMIT 3
-- 코드를 입력하세요
-- 보호소에 들어올 당시는 중성화 되지 않음 IN -> Intact
-- 보호소에 나갈 당시에는 중성화 됨 OUTS-> Spayed 또는 Neutered
SELECT ai.ANIMAL_ID,ai.ANIMAL_TYPE,ai.NAME
FROM ANIMAL_INS ai
LEFT JOIN ANIMAL_OUTS ao
ON ai.ANIMAL_ID=ao.ANIMAL_ID
WHERE ai.SEX_UPON_INTAKE LIKE 'Intact %'
# 3. IN은 와일드카드를 사용할 없기 때문에 SELECT 절을 이용해 찾기
# 방법 1. AND ao.SEX_UPON_OUTCOME NOT LIKE 'Intact %'
# 방법 2. IN 안에 서브쿼리를 넣어서 실행
# AND ao.SEX_UPON_OUTCOME IN (SELECT SEX_UPON_OUTCOME FROM ANIMAL_OUTS WHERE SEX_UPON_OUTCOME LIKE 'Spayed%' OR SEX_UPON_OUTCOME LIKE 'Neutered%')
# 방법 3. IN 안에 값을 다 넣어서 비교
# AND AO.SEX_UPON_OUTCOME IN ('Spayed Female','Spayed Male','Neutered Male','Neutered Female')
# 방법 4. OR을 사용하기
AND (AO.SEX_UPON_OUTCOME LIKE 'Spayed%' OR AO.SEX_UPON_OUTCOME LIKE 'Neutered%')
ORDER BY ai.ANIMAL_ID
-条件の比較にLIKEを使用
-複数本検索する場合はコラムLIKE ORを使用し、必ず()を使用してバンドル!!」比較値1%「ORコラムLIKE」「比較値2%」を使用
-複数のイベントをクエリーするときにINの値を入力するか、またはINでサブクエリー
Reference
この問題について(SQL解答-(5)JOIN), 我々は、より多くの情報をここで見つけました https://velog.io/@sds1vrk/SQL-문제-풀이-5-JOINテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol