に可能な組み合わせのリストを作成し、私はテーブル多くから多くの関係
Hotels
Countries
Regions
Cities
Hotel_Types
および/すべての関係が含まれているMappings
という名前の多くの関係テーブルには多くの設定を持っています
id, hotel_id, reference_type, reference_id, ...
のような情報を含むマッピング
reference_type
を
Country
、
Region
、
City
、
Hotel_Type
など と
reference_id
私は
Country_Name+Hotel_Type_Name
Region_Name+Hotel_Type_Name
City_Name+Hotel_Type_Name
のすべての可能な組み合わせのリストを作成する必要が
country_id
又は
city_id
等
ような前記エンティティのIDであってもよい
ホテルはどこにありますか。これはCountry_Name+Hotel_Type_Name
のユニークな組み合わせがリストされます
select name, hotel_type_name
from (select c.country_name as name, h.hotel_type_name Mappings m inner join Countries c on m.reference_type='Country' and m.reference_id=c.country_id inner join hotel_Types h on m.reference_type='Hotel_type' and m.reference_id=h.hotel_type_id) union all
(select c.region_name as name, h.hotel_type_name Mappings m inner join Regions r on m.reference_type='Region' and m.reference_id=r.region_id inner join Hotel_Types h on m.reference_type='Hotel_type' and m.reference_id=h.hotel_type_id) union all
(select c.city_name as name, h.hotel_type_name Mappings m inner join Cities ci on m.reference_type='City' and m.reference_id=ci.city_id inner join Hotel_Types h on m.reference_type='Hotel_type' and m.reference_id=h.hotel_type_id)