Как правильно составить sql запрос с условием?

Ссылка скопирована
1 ответ

Привет! Имеются следующие таблицы:

orders
id
date
type (book или deposit)
status (success, error)

orders_books
id
order_id
book_id
...

orders_deposits
id
order_id
...

можно ли запросом sql получить записи по следующему алгоритму: проходим по orders, если type === book, то берем нужную инфу из orders_books, если type === deposit, то берем из orders_deposits?

в голову приходит только несколько вариантов решения:
1. получить нужные записи orders и циклом проходить по каждой записи и отдельным запросом получать нужную инфу
2. получить тремя запросами данные из 3 таблиц и потом как-то отдельно склеивать, orders_books и orders_deposits чтобы сортировка была либо по order_id либо по времени

Дополнительно:

Схематично:

SELECT orders.column,        COALESCE(books.column, deposits.column) AS column FROM orders  LEFT JOIN books ON orders.type = 'book' AND orders.id = books.order_id LEFT JOIN deposits ON orders.type = 'deposit' AND orders.id = deposits.order_id

SELECT orders.column, COALESCE(books.column, deposits.column) AS column FROM orders LEFT JOIN books ON orders.type = 'book' AND orders.id = books.order_id LEFT JOIN deposits ON orders.type = 'deposit' AND orders.id = deposits.order_id

  • спасибо
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Антон С. Ответ

Для составления SQL запроса с условием нужно использовать ключевое слово WHERE после указания таблицы, чтобы задать условие выборки данных. В условии можно использовать различные операторы сравнения (например, =, , >, =, <=), логические операторы (AND, OR, NOT) и функции (например, LIKE для поиска по шаблону).

Пример SQL запроса с условием:

SELECT * FROM users WHERE age &gt; 18;

SELECT * FROM users WHERE age &gt; 18;

В данном примере мы выбираем всех пользователей из таблицы "users", у которых возраст больше 18 лет.

Если нужно задать несколько условий, их можно комбинировать с помощью логических операторов:

SELECT * FROM products WHERE price &gt;= 100 AND category = 'Electronics';

SELECT * FROM products WHERE price &gt;= 100 AND category = 'Electronics';

Этот запрос выбирает все продукты из таблицы "products" с ценой не менее 100 и категорией "Electronics".

Также можно использовать функции и операторы для более сложных условий:

SELECT * FROM orders WHERE DATE(created_at) = CURDATE() AND total_amount &gt; 1000;

SELECT * FROM orders WHERE DATE(created_at) = CURDATE() AND total_amount &gt; 1000;

Этот запрос выбирает все заказы из таблицы "orders", созданные сегодня, с общей суммой больше 1000.

Важно помнить, что правильное использование условий в SQL запросе помогает точно выбирать нужные данные и оптимизировать работу с базой данных.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно