У меня есть база данных свойств, и в настоящее время я разрабатываю запрос дополнительных характеристик свойств. В данном случае речь идет о двух таблицах:
Это первая таблица характеристик, в которой в основном хранится мета для каждой характеристики.
Это база данных CharacteristicsPerProperty, в которой я храню отношение и окончательное значение конкретной характеристики.
Так что в основном я хочудля этого нужно сосчитать все уникальные значения id_propiedad
(property_id
), чтобы я мог показать, сколько у меня имеется с этой конкретной характеристикой. Запрос выглядит следующим образом:
SELECT
COUNT(DISTINCT(CaracteristicasPorPropiedad.id_propiedad)) AS disponibles
FROM
CaracteristicasPorPropiedad
WHERE
CaracteristicasPorPropiedad.id_caracteristica = 1
AND
CaracteristicasPorPropiedad.valor = 3
Таким образом, в основном вывод выглядит примерно так:
| disponibles |
|=============|
| 264 |
Здесь все работает, как и ожидалось, но я также могу включить другой параметр, скажем, вВ предыдущем примере я включил Recámaras (Спальни), но я также хочу включить Baños (Ванные комнаты). Я пытался
SELECT
COUNT(DISTINCT(CaracteristicasPorPropiedad.id_propiedad))
FROM
CaracteristicasPorPropiedad
WHERE
(CaracteristicasPorPropiedad.id_caracteristica = 1 AND CaracteristicasPorPropiedad.valor = 3)
AND
(CaracteristicasPorPropiedad.id_caracteristica = 2 AND CaracteristicasPorPropiedad.valor = 2.5)
Дело в том, что этот запрос возвращает 0.
Если я переключаю И на ИЛИ, он возвращает 282 результата. Мне в основном нужно сочетание обоих. Я немного застрял с этим. Что может быть запросом, чтобы смешать несколько уровней этого? Может использоваться со всеми 10 доступными размерами для этой характеристики.