Похожие чаты

Ребятки, вот вопрос возник, не могу понять как реализовать запрос... Есть

таблица Product которая HAS_MANY WarehouseStock. А в WarehouseStock есть id, product_id, warehouse_id, stock.
Мне нужно сделать такой запрос, чтобы выборка содержала только такие Product, у которых JOIN по product_id из WarehouseStock, но условие: WarehouseStock.id IS NULL OR WarehouseStock.warehouse_id = 1.
$criteria = new CDbCriteria();
$criteria->with = ['warehouseStocks'];
$criteria->addCondition('warehouseStocks.id IS NULL OR warehouseStocks.warehouse_id = :default_id');
$criteria->params = ['default_id' => 1];
$products = Product::model()->published()->in_stock()->findAll($criteria, ['pagination' => false]);
Но оно выводит не совсем то, что мне хотелось бы) Хочется, чтобы выведены были только те продукты, которые, у которых либо нет записей в WarehouseStock, либо есть, но только одна и в ней warehouse_id = 1. А оно получается выводит и те продукты, у который в WarehouseStock есть больше одной записи (а мне нужно не больше одной и только определенный warehouse_id)
Может кто-то мог бы помочь уточнить мой запрос?

3 ответов

34 просмотра

С реализации SQL-запроса имеет смысл обратится в группах по БД.

Han-Sher Автор вопроса
Сан Саныч
С реализации SQL-запроса имеет смысл обратится в г...

Я думаю, что это не очень сложный запрос, просто я чуть профан) Но поделитесь, пожалуйста, ссылочкой на чат по БД, не состою пока... Благодарю.

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
Hi. Do we have a raid bot? Why nobody doing raids on X? Even RH mentioned this and nobody paying attention...whats the channel for hex memes? If mods cant run raids just insta...
H
31
Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
блеать, почему так?? где в роутере это исправляется?
Арсен Маньяков 🇦🇲
16
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
🌊 Ocean Nodes Dashboard Update 🚀 Hey, Oceaners! First off, a massive round of applause 👏to all of you for the amazing engagement since we launched Ocean Nodes. In just a few ...
KreigDK | Never DM first🌊
3
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
люди, которые используют flameshot, к вам вопрос. Можно-ли поставить хоткей на создание скриншота? В программе есть отдел "горячие клавиши", но там все для редактирования, скр...
ThunDer104
11
Карта сайта