На головну

SELECT ім'я_стовпця FROM ім'я_таблиці WHERE частина умови IN

  1. A. Read the text and say where Bournemouth is located.
  2. C. Practice introducing yourself, friends and groupmates. Remember to smile (and use handshakes where appropriate).
  3. Complete these sentences with the correct forms of the verbs in brackets. Use short forms where possible.
  4. Ex.3. Give the singular of the following nouns where possible.
  5. Ex.4. Fill in the blanks with articles where necessary.
  6. Ex.4. Fill in the blanks with articles where necessary.
  7. Ex.4. Fill in the blanks with articles where necessary.

(SELECT ім'я_стовпця FROM ім'я_таблиці WHERE частина умови IN

(SELECT ім'я_стовпця FROM ім'я_таблиці WHERE умова))

приклад:

Дізнаємося, хто створив тему «велосипеди» на форумі:

Тобто, після ключового слова WHERE, в умова ми записуємо ще один запит. MySQL спочатку обробляє підзапит, повертає id_author = 2, і це значення передається в пропозицію WHERE зовнішнього запиту.

Зверніть увагу, що підзапити можуть вибирати тільки один стовпець, значення якого вони будуть повертати зовнішнім запитом. Спроба вибрати кілька стовпців призведе до помилки.

Приклад 2:

Дізнаємося, які повідомлення на форумі залишав автор теми «велосипеди»:

Тепер ускладнити завдання, дізнаємося, в яких темах залишав повідомлення автор теми "велосипеди":

Давайте розберемося, як це працює.

· Спочатку MySQL виконає найглибший запит:

SELECT id_author FROM topics WHERE topic_name = 'велосипеди'

· Отриманий результат (id_author = 2) передасть у зовнішній запит, який матиме вигляд: SELECT id_topic FROM posts WHERE id_author IN (2);

· Отриманий результат (id_topic: 4,1) передасть у зовнішній запит, який матиме вигляд: SELECT topic_name FROM topics WHERE id_topic IN (4,1);

· І видасть остаточний результат (topic_name: про рибалку, про риболовлю). Тобто автор теми "велосипеди" залишав повідомлення в темі "Про риболовлю", створеної Сергієм (id = 1) і в темі "Про риболовлю", створеної Світланою (id = 4).

Є два моменти, на які варто звернути увагу:

· Не рекомендується створювати запити зі ступенем вкладення більше трьох. Це призводить до збільшення часу виконання і до складності сприйняття коду.

· Наведений синтаксис вкладених запитів, швидше за найбільш уживаний, але зовсім не єдиний. Наприклад, ми могли б замість запиту

SELECT name FROM users WHERE id_user IN

(SELECT id_author FROM topics WHERE topic_name = 'велосипеди');

написати

SELECT name FROM users WHERE id_user =

(SELECT id_author FROM topics WHERE topic_name = 'велосипеди');

Тобто ми можемо використовувати будь-які оператори, використовувані з ключовим словом WHERE.

 



Попередня   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   Наступна

Вибірка даних за допомогою умов | Оператори більше і менше | Пошук текстових даних за шаблоном за допомогою пропозиції WHERE і оператора LIKE. | Логічні оператори | Оператори IN і BETWEEN | Підрахунок числа записів | Пропозиції GROUP BY і HAVING | Видалення записів з таблиці | Упорядкування даних ORDER BY | Обмеження кількості видобутих даних |

© um.co.ua - учбові матеріали та реферати