Всем добрый вечер. Я задался целью написать доску объявлений с различными сортировками в каждой категории. Вот тестовое представление базы данных:
ссылка
В качестве примера я добавил квартиру, у которой есть характеристики: количество этажей и количество комнат. (12 и 4 соответственно), и ещё одну квартиру, у которой те же характеристики за исключением количества этажей: их 9.
Делаю запрос
SELECT `items`.`name` AS item_name, `categories`.`name` AS cat_name, `attributes`.`name` AS attribute_name, `values`.`value` AS attribute_value
FROM `items`
LEFT JOIN `categories` ON `categories`.`id` = `items`.`category_id`
LEFT JOIN `item_attribute` ON `item_attribute`.`item_id` = `items`.`id`
LEFT JOIN `attributes` ON `attributes`.`id` = `item_attribute`.`attribute_id`
LEFT JOIN `values` ON `values`.`id` = `item_attribute`.`value_id`
WHERE `items`.`id` = 1
Всё отлично выводит, показывает, что есть характеристики две. Но! Проблема возникает с запросом, включающий в себя условие проверки: > 10. Другими словами, нужно выбрать итемы, у которых количество этажей будет больше 10. Я знаю как сделать это в 2 запроса. Можно ли как-то сделать в один, и, конечно же, верна ли моя структура базы данных? Заранее благодарю.