아래와 같1060; 테1060;블1060; 2개 1080;1012; ǐ12; 사과, 맥1452;품목1032; 영수1613;번호를 뽑고 dz10;습니다.
SELECT 영수1613;번호 FROM 테1060;블 A ta INNER JOIN 테1060;블 B tb on ta.영수1613;번호 = tb.영수1613;번호 WHERE b.품목 = '사과' or b.품목 = '맥1452;';
위 처/100; 쿼리를 DŽ16;리면 결과가
쿼리결과: a, a , c , c, d
1060;/111;,172; 나오lj16;데 distinct 를 Ǹ16;1648; 않고 결과를 a,c,d만 뽑1012; 수 1080;도/197;Ȣ16;lj16; 속도를 빠르,172; 할 수 1080;lj16; 쿼리가 Ǻ12;떻,172; .112;까요?160;
원Ȣ16;lj16; 결과: a, c, d
1648;금 단순Ȣ16;,172; 테1060;블1012; 1089;성해놨lj16;데 칼/100;1060; 여러개1060;고 데1060;터가 테1060;블A에 50만개1221;도 테1060;블 B에 150~500만개1221;도 쌓였1012; ǐ12; distcint를 Ȣ16;고 order 를 Ǹ16;면 속도가 lj12;릴,163; 같아서 여쭤봅니다.
테1060;블 A
영수1613;번호 | 금액 |
a | 500 |
b | 1000 |
c | 2200 |
d | 3000 |
테1060;블 B
영수1613;번호 | 품목 |
a | 사과 |
a | 맥1452; |
b | 수0149; |
c | 사과 |
c | 맥1452; |
c | 포도 |
d | 사과 |
d | Ȗ12;위 |
SELECT DISTINCT ¿µ¼öÁõ¹øÈ£ FROM Å×À̺íB WHERE Ç°¸ñ IN ('»ç°ú','¸ÆÁÖ')
Á¶È¸ Á¶°Ç, INDEX ¿¡ µû¶ó Äõ¸®´Â ´Þ¶óÁö±â ¶§¹®¿¡
ÀÌ·¸°Ô ¹®ÀÇÇÏ½Ã¸é ¿øÇϽô ´äÀº ¹Þ±â Èûµå½Ç µí
ÀÚ½Ä Å×À̺í üũ Á¶°ÇÀ» Ãß°¡ÇÒ °æ¿ì
exists ¸¦ »ç¿ë Çϸé ÁÁÀº ¼º´ÉÀ» ³»´Â °æ¿ì°¡ ¸¹½À´Ï´Ù.
(¾Õ¿¡¼ À̾߱⠵å·ÈµíÀÌ Á¶È¸ Á¶°Ç, INDEX¿¡ µû¶ó ´Þ¶óÁü)
SELECT ¿µ¼öÁõ¹øÈ£
FROM Å×À̺íA a
WHERE EXISTS (
SELECT 1
FROM Å×À̺íB b
WHERE b.¿µ¼öÁõ¹øÈ£ = a.¿µ¼öÁõ¹øÈ£
AND b.Ç°¸ñ IN ('»ç°ú','¸ÆÁÖ')
LIMIT 1
)
´öºÐ¿¡ QnA°¡ dz¼ºÇØÁö°í ÀÖ½À´Ï´Ù.