deenween
@deenween
Laravel

Получить товары для определенного города?

Всем привет!

есть таблица, product_cities
поля:
-product_id (связь с товаром из таблицы products )
-city_id ( связь с городом из таблицы cities)
-can_be_sold (можно продавать только для данного города , для остальных городов не продается)
-can_not_be_sold (не продается для данного города, для остальных городов продается)

При выборке нужно учесть три условия:

1. если для данного товара нет записей в этой таблице - то выводим
2. если есть запись для данного товара и city_id и can_be_sold = 1 то выводим
3. если есть запись для данного товара и city_id НО can_not_be_sold = 1 то УЖЕ НЕ ВЫВОДИМ.

Вот никак не могу учесть все три условия в одном SQL запросе. Есть какие идеи?
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 1
deenween
@deenween Автор вопроса
Laravel
Решение, может кому то поможет
В моем случае названия таблиц отличается от тех что в вопросе.

------
SELECT
  master_products.id,master_products.name,master_product_regions.master_product_id AS mpr_id 				
FROM
  master_products

JOIN master_product_categories  on master_products.id=master_product_categories.master_product_id
			
 LEFT JOIN  master_product_regions    ON  master_products.id=master_product_regions.master_product_id
 WHERE
	  master_product_categories.category_id=803
  AND 
			(  
			   master_product_regions.id is NULL 
			   OR (master_product_regions.city_id = ".$city." AND master_product_regions.can_be_sold = 1)
			   OR (master_product_regions.city_id != ".$city." AND master_product_regions.can_not_be_sold=1)
		        )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы