Моя первая таблица - это таблица предметов. (Invoice_inventory)
Моя вторая таблица - это прайс-лист (inventory_prices), там у меня есть прайс-лист по умолчанию (company_id = 0) и несколько специальных прайс-листов (но не для каждой компании).
Следующим запросом я пытаюсь получить все товары с указанием цены для company_id = 2.
Он должен использовать специальный прайс-лист (company_id = 2, если он существует), иначе он должен использовать цену по умолчанию (company_id = 0).
Я думал, что GROUPING + ORDERING будет работать, но я забыл, что GROUP BY
выполняется до ORDER
.
Я думаю, что мне может понадобиться подзапрос, но я не уверен.
SELECT invoice_inventory.*, invoice_inventory_prices.*
FROM invoice_inventory
LEFT JOIN invoice_inventory_prices
ON `invoice_inventory`.`inventory_id`
= `invoice_inventory_prices`.`inventory_id`
WHERE (company_id = 2 OR company_id = 0)
GROUP BY invoice_inventory.inventory_id
ORDER BY company_id DESC