Что я делаю не так?
есть запрос
$query = Product::find()
->with(['image','salon'])
->joinWith('salonProduct', true, 'LEFT JOIN')
->orderBy([new \yii\db\Expression('
CASE salon_product.sort
WHEN NULL
THEN 50000
ELSE salon_product.sort
END
')]);
ожидаю что сортировка будет идти так, вначале поля где salon_product.sort не null в порядке возрастания, потом те что null
Но получаю, совершенно не то. Даже не могу понять по какому принципу. Но Начинается с тех где salon_product отсутствует.
У меня есть product и таблица salon_product, у которой есть поле product_id. Но не для каждого product есть salon_product. Соответственно хочу вывести вначале те, для которых есть в порядке сортировки, потом остальные неважно как.
Вот запрос:
SELECT `product`.* FROM `product` LEFT JOIN `salon_product` ON `product`.`id` = `salon_product`.`product_id` WHERE `cat_id`='1' ORDER BY CASE WHEN salon_product.sort = NULL THEN 50000 ELSE salon_product.sort END LIMIT 24