Делаю подобие интернет магазина на Laravel. И Eloquent предлагает такой вариант запроса:
select * from `products` where exists (
select `id` from `properties_values_int`
where `products`.`id` = `properties_values_int`.`product_id` and `value` = ?
) and exists (
select `id` from `properties_values_string`
where `products`.`id` = `properties_values_string`.`product_id` and `value` = ?
) and exists (
select `id` from `properties_values_string`
where `products`.`id` = `properties_values_string`.`product_id` and `value` = ?
)
На сколько плохо использовать такой запрос при фильтрации товаров, с учетом того, что типы свойств разнесены по таблицам и расставлены индексы?