目前我有两个 MySQL 表
特性
id name
1 Grove house
2 howard house
3 sunny side
高级选项
prop_id name
1 Wifi
1 Enclosed garden
1 Swimming pool
2 Swimming pool
如您所见,表二包含有关属性的特定功能
当我只有最多 3 个选项时,下面的查询工作得很好。(可能有点慢但没关系)现在事情已经有所扩展,我最多可以搜索 12 个选项,这给我带来了一些主要的速度问题。下面的查询是针对 8 个选项的,您可以看到它非常混乱。有没有更好的方法来做我想要实现的目标?
SELECT * FROM properties WHERE id in (
select prop_id from advanced_options where name = 'Within 2 miles of sea or river' and prop_id in (
select prop_id from advanced_options where name = 'WiFi' and prop_id in (
select prop_id from advanced_options where name = 'Walking distance to pub' and prop_id in (
select prop_id from advanced_options where name = 'Swimming pool' and prop_id in (
select prop_id from advanced_options where name = 'Sea or River views' and prop_id in (
select prop_id from advanced_options where name = 'Pet friendly' and prop_id in (
select prop_id from advanced_options where name = 'Open fire, wood burning stove or a real flame fire-place' and prop_id in (
select prop_id from advanced_options where name='Off road parking')
)
)
)
)
)
)
)