SQL | Подзапросы
Подзапросы - мощная залупа, которая используется внутри другого запроса, знаю, нихуя не понятно, поэтому идем к примерам. Нам надо одним запросом извлечь данные на товар, который стоит больше всех:
1. Сначала напишем сам запрос для получения
SELECT MAX
SELECT
Другой пример с получением информации на товары, которые были проданы хотя бы 1 раз
SELECT
Другой пример, допустим надо обновить цену для всех товаров с категорией "залупа"
UPDATE
Подзапросы - мощная залупа, которая используется внутри другого запроса, знаю, нихуя не понятно, поэтому идем к примерам. Нам надо одним запросом извлечь данные на товар, который стоит больше всех:
1. Сначала напишем сам запрос для получения
SELECT MAX
(price)
FROM products
2. Теперь добавим подзапрос в наш основной запросSELECT
id, title, price
FROM products
WHERE price
= (
SELECT MAX(price)
FROM products)
Другой пример с получением информации на товары, которые были проданы хотя бы 1 раз
SELECT
id, title, price
FROM products
WHERE id
IN (
SELECT product_id
FROM sales)
ps:
Важное уточнение, здесь используется IN, потому что подзапрос возвращает МАССИВ элементов и уже внутри этого массива ищутся поля, указанные после фильтра WHEREДругой пример, допустим надо обновить цену для всех товаров с категорией "залупа"
UPDATE
products
SET price = price + 666
WHERE category_id = (
SELECT id
FROM categories
WHERE title="залупа")
Здесь мы IN не юзаем, поскольку мы должны ДЛЯ ВСЕХ элементов в массиве поменять значение, а не для конкретных