現在、2 つの 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
ご覧のとおり、表 2 にはプロパティに関する特定の機能が含まれています。
最大 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')
)
)
)
)
)
)
)