πŸ” ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² 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 ΠΈ программирования Π² Ρ†Π΅Π»ΠΎΠΌ!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Keys in database | Composite key | DBMS | Bhanu Priya

Primary key on two columns SQL Server

#43 Composite Key in SQL | SQL Tutorial

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SQL для Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…?

Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Ρ‹Ρ€ΡƒΡ‡ΠΊΡƒ SQL: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ” ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² SQL WHERE IN: ΠΏΡ€Π°Π²ΠΈΠ»Π° использования

Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ grant sql ΠΈ ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sql length Π² where для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ запросов Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Ρ‚Ρ‹ Π² SQL?