π ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ Π² SQL WHERE IN: ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
Π SQL ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ WHERE IN ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ»ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
SELECT * FROM table_name WHERE (column1, column2) IN ((value1, value2), (value3, value4), ...);
ΠΡΠΈΠΌΠ΅Ρ:
SELECT * FROM customers WHERE (first_name, last_name) IN (('John', 'Doe'), ('Jane', 'Smith'));
ΠΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Π²Π΅ΡΠ½Π΅Ρ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, Π³Π΄Π΅ ΠΈΠΌΡ ΠΈ ΡΠ°ΠΌΠΈΠ»ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
Π Π°Π·ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SQL "WHERE IN" Ρ ΡΠΎΡΡΠ°Π²Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ
ΠΡΠΈΠ²Π΅Ρ! Π― ΡΠ°Π΄ ΠΏΠΎΠΌΠΎΡΡ ΡΠ΅Π±Π΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠ΅ΠΌΠ΅ "sql where in composite key"! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ "WHERE IN" Ρ ΡΠΎΡΡΠ°Π²Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ Π² SQL. Π― ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΡΠ°ΡΡΠΎΠ»ΠΊΠΎΠ²Π°ΡΡ ΡΠ΅Π±Π΅ ΡΡΡ ΡΠ΅ΠΌΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΠ°Π²Π°ΠΉ Π½Π°ΡΠ½Π΅ΠΌ!
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ»ΡΡ?
Π‘ΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ»ΡΡ (composite key) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Π΄Π²ΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠΌΠ΅ΡΡΠ΅ ΡΡΠΈ ΡΡΠΎΠ»Π±ΡΡ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΊΠ°ΠΊ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄Π»Ρ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ "WHERE IN" Ρ ΡΠΎΡΡΠ°Π²Π½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ?
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ "WHERE IN" ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π²ΡΠ±ΡΠ°ΡΡ ΡΡΡΠΎΠΊΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠ°Π²Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ "WHERE IN" Ρ ΡΠΎΡΡΠ°Π²Π½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ° ΡΠΎΡΡΠ°Π²Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ "students" Ρ ΡΠΎΡΡΠ°Π²Π½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ, ΡΠΎΡΡΠΎΡΡΠΈΠΌ ΠΈΠ· Π΄Π²ΡΡ ΡΡΠΎΠ»Π±ΡΠΎΠ²: "name" ΠΈ "age". ΠΡ Ρ ΠΎΡΠΈΠΌ Π²ΡΠ±ΡΠ°ΡΡ Π²ΡΠ΅Ρ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΈΠΌΡ "John" ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡ 20 ΠΈΠ»ΠΈ 25. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ SQL-Π·Π°ΠΏΡΠΎΡ:
SELECT *
FROM students
WHERE (name, age) IN (('John', 20), ('John', 25));
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ "WHERE IN" Ρ ΡΠΎΡΡΠ°Π²Π½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ (name, age). ΠΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ° Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ . ΠΠ°ΠΏΡΠΎΡ Π²Π΅ΡΠ½Π΅Ρ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΡ ΡΠ°Π²Π½ΠΎ "John" ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡ ΡΠ°Π²Π΅Π½ 20 ΠΈΠ»ΠΈ 25.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°
ΠΠ°Π²Π°ΠΉ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ "WHERE IN" Ρ ΡΠΎΡΡΠ°Π²Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ.
ΠΡΠΈΠΌΠ΅Ρ 1:
SELECT *
FROM orders
WHERE (customer_id, product_id) IN (('C001', 'P001'), ('C002', 'P002'));
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π²ΡΠ΅ Π·Π°ΠΊΠ°Π·Ρ, Π³Π΄Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΈΠΌΠ΅Ρ 2:
SELECT *
FROM employees
WHERE (first_name, last_name) IN (('John', 'Doe'), ('Jane', 'Smith'));
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π²ΡΠ΅Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΡΠ°ΠΌΠΈΠ»ΠΈΠ΅ΠΉ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ "WHERE IN" Ρ ΡΠΎΡΡΠ°Π²Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ Π² SQL. Π‘ΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ»ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Π΄Π²ΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠΎΠ»Π±ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΡΠΎΠΊ Π² ΡΠ°Π±Π»ΠΈΡΠ΅. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° "WHERE IN" ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ±ΡΠ°ΡΡ ΡΡΡΠΎΠΊΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠ°Π²Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ Π±ΡΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈ ΡΠ΅Π±Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΠ΅ΠΌΠΎΠΉ "sql where in composite key". Π£Π΄Π°ΡΠΈ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ SQL ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ΅Π»ΠΎΠΌ!