[SQL] LEFT JOINμ νμ©ν λλ½λ λ°μ΄ν° μ²λ¦¬νκΈ° — dovnaldisn (tistory.com)
[SQL] LEFT JOINμ νμ©ν λλ½λ λ°μ΄ν° μ²λ¦¬νκΈ°
μ νλ₯Ό 보면 codetypeμ fruitμ΄ μκ³ codekeyμλ κ³ΌμΌμ μ’ λ₯κ° μ νμλ€. κ·Έλ¦¬κ³ κ°κ° κ³ΌμΌμ λν μ’ λ₯μ μ΄λ¦μ΄ λμμλ€. νμ¬ ν¬λλ 4κ°, μ¬κ³Όλ 2κ°, μ€λ μ§λ 3κ°, λ°°λ 0κ°μΈλ° ν¬λ, μ¬κ³Ό,
dovnaldisn.tistory.com
μ΄ κΈμ μ½λ 리뷰λ₯Ό λ°κ³ μ¬μμ±μ ν΄λ³Έλ€.
μμ ν μ΄λΈ ꡬ쑰
μμ ν μ΄λΈ μμ±μ μ΄λ κ² λλ€.
insert into fruit (codetype, codekey, koname)
values
('apple','green apple','μμ€λ¦¬ μ¬κ³Ό'),
('apple','red apple','μ¬κ³Ό'),
('fruit','grape','ν¬λ'),
('fruit','apple','μ¬κ³Ό'),
('fruit','orrange','μ€λ μ§'),
('fruit','pear','λ°°'),
('grape','kyoho','κ±°λ΄'),
('grape','shine muscat','μ€μΈλ¨Έμ€μΊ£'),
('grape','black shpphire','λΈλμ¬νμ΄μ΄'),
('grape','green grape','μ²ν¬λ'),
('orrange','tangerine','ν
μ λ¦°'),
('orrange','navel orrange','λ€μ΄λΈ μ€λ μ§'),
('orrange','valencia orrange','λ°λ μμ μ€λ μ§');
λ°μ΄ν°λ μ΄λ κ² insert νλ€.
κ³ΌμΌ μ’ λ₯λ³λ‘ countνλ 쿼리문μ μ§°λ€.
λ¬Έμ (μ½λ κ°μ )
νλͺ©μ μλ 건 μ μΈνκ³ count νκΈ°
μλ μ½λ
select B.codekey, count(A.codekey)
from (select * from fruit where codetype like 'fruit') B
join fruit A
on A.codetype = B.codekey
group by B.codekey;
β κ°μ λ μ½λ
select min(B.codekey),
count(*) as "νλͺ©μ"
from fruit B,
fruit A
where 1=1
and A.codetype = B.codekey
group by B.codekey;
νλͺ©μ μλ κ²λ count νκΈ°
μλ μ½λ
select B.codekey, count(A.codekey)
from (select * from fruit where codetype like 'fruit') B
left join fruit A
on A.codetype = B.codekey
group by B.codekey;
β κ°μ λ μ½λ
select min(A.codekey),
count(B.*) as "νλͺ©μ"
from fruit A
left join fruit B
on A.codekey = B.codetype
where 1=1
and A.codetype = 'fruit'
group by A.codekey;
κ°μ λ°©μ
1οΈβ£ λ€μ¬μ°κΈ° μ ν΄μ£ΌκΈ°
μλ μ½λμ²λΌ λ€μ¬μ°κΈ°λ₯Ό νμ§ μλλ€λ©΄ κ°λ μ±μ΄ λ¨μ΄μ§λ€.
(μ½λμ κΈΈμ΄κ° κΈΈμ΄μ§λ©΄ κ°λ μ±μ΄ μμ² λ¨μ΄μ§)
μ¬λλ§λ€ μ€νμΌμ΄ λ€ λ€λ₯΄λ―λ‘ μ°Έκ³ ν΄μ μ°μ΅νλκ² μ’λ€.
2οΈβ£ κ°λ‘λ‘ κΈΈμ΄μ§μ§ μκ² μ μ ν Enter ν΄μ£ΌκΈ°
μ½λ μ€μ΄ κΈ΄ 건 μκ΄ μμ§λ§, κ°λ‘λ‘ κΈΈμ΄μ§λ©΄ 보기 νλ€μ΄μ§κΈ° λλ¬Έμ κ°λ‘λ‘ κΈΈμ΄μ§κΈ° μ μ μ€λ°κΏμ ν΄μ£Όλ κ² μ’λ€.
SELECT A.column1,
A.column2,
B.column3,
MAX(B.column4) AS max_value
FROM
table1 A
LEFT JOIN table2 B
ON A.column1 = B.column1
GROUP BY
A.column1,
A.column2,
B.column3;
μ΄λ° μμΌλ‘ Enterμ Tabμ μ μ ν μ¬μ©ν΄μΌ νλ€.
3οΈβ£ μλΈμΏΌλ¦¬ μ¬μ© μμ
μλ μ½λμλ λ€μκ³Ό κ°μ μλΈ μΏΌλ¦¬κ° μλ€.
from (select * from fruit where codetype like 'fruit') B
νμ§λ§ μλΈ μΏΌλ¦¬λ μ΅!λ!ν! μ¬μ© μμ νλ κ² μ’λ€.
λ°μ΄ν° μμ΄ λ°©λν΄μ§μλ‘ μλκ° λλ €μ§λ€.
→ from μ μλ λ κ°μ ν μ΄λΈμ ν¨κ» μ¬μ©ν μ μλ€.
4οΈβ£ group byλ ν΅ν©ν λμλ§ μ μ΄μ£Όλ κ² μ’λ€.
κ·ΈλΌ λλ¨Έμ§λ μ΄λ»κ² μ μ΄?
→ min()μ΄λ max()λ‘ νμνλ©΄ λλ€.
5οΈβ£ Where μ μ 1=1 μ μ΄μ£ΌκΈ°
SELECT *
FROM employees
WHERE 1=1
-- AND name = 'John'
-- AND age = 23
-- μ£Όμ λ£κΈ°λ νΈνκ³ , λͺ¨λ 쑰건μ μ£Όμμ λ¬μλ νμ μ°Έμ΄λ€.
order by num;
쿼리문μ μμ±ν λ, 1=1μ λ£μ΄μ£Όλ©΄ λͺ¨λ 쑰건μ μ£Όμμ²λ¦¬ν΄λ μ€λ₯κ° λμ§ μλλ€.
μ΄λ WHERE μ μ 1=1μ΄λΌλ μ‘°κ±΄μ΄ μμΌλ©΄, μ΄ μ‘°κ±΄μ΄ νμ μ°Έ(TRUE)μ΄κΈ° λλ¬Έμ΄λ€.
μ²μ WHEREμ 1=1λ₯Ό μ μ΄μ£Όκ³ λ€μ 쑰건λΆν° 'AND 쑰건μ'μΌλ‘ μμ±νλ©΄ ν΅μΌμ±λ μκ³ μ£Όμλ λ£κΈ° νΈνκΈ° λλ¬Έμ μ΄λ° μμΌλ‘ μμ±νλ κ²μ κΆμ₯νλ€.
'π³π°ππ°π±π°ππ΄' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Oracle Databaseμ tnsnames.ora νμΌ κ΅¬μ‘°μ μν μ΄ν΄νκΈ° (0) | 2024.11.03 |
---|---|
κ³μΈ΅μ μΈ ν μ΄λΈ ꡬ쑰μμμ SQL JOIN νμ©λ² (0) | 2024.10.26 |
PostgreSQL μλμ° windowsμ μ€μΉ (0) | 2024.04.22 |
[SQL] LEFT JOINμ νμ©ν λλ½λ λ°μ΄ν° μ²λ¦¬νκΈ° (0) | 2024.04.19 |
λ°μ΄ν°λ² μ΄μ€ λ²€λλ? Database Vendor (0) | 2024.04.01 |