2016-10-14 3 views
2

に参加します。次のクエリを実行するとtrueが返されますが、short_name(国名)、name(状態テーブル)ではなくregion_nameの結果が返されます。マルチレベルカスケードは、私がSHORT_NAME(国名)、名前(状態表)やREGION_NAMEのいずれかの利用可能なデータからpost_idのを選択したいのですが、私はテーブル構造 <a href="https://i.stack.imgur.com/T7bwP.png" rel="nofollow"><img src="https://i.stack.imgur.com/T7bwP.png" alt="enter image description here"></a></p> <p>を以下まし選択クエリ

select * 
from t_post_city 
inner join t_region on t_region.region_id = t_post_city.city_id 
inner join t_country on t_region.country_id = t_country.country_id 
inner join t_states on t_region.province_id = t_states.state_id 
where t_country.short_name like %india% 
    or t_states.name like %rajasthan% 
    or t_region.region_name like %sitapura% 

私が間違っていると教えてください!

+0

使用していますか? (関与していない製品にタグを付けないでください。) – jarlh

+0

申し訳ありません私のクエリSIは、内側t_region.region_id = t_post_city.city_idにt_regionに参加t_post_city から選択* インナーはt_region.country_id = t_country.country_idにt_countryに参加 インナーがt_regionにt_statesに参加します。 province_id = t_states.state_id ここでt_country.short_nameは%india%またはt_states.nameのように%rajasthan%またはt_region.region_name%sitapura% – shivshankar

+0

のようです – shivshankar

答えて

0

3つの基準ごとに異なる表の式を使用します。 SQLでUNIONを使用してORロジックを書く:あなたは、MySQLやPostgreSQLを

select post_id 
from t_post_city 
inner join t_region on t_region.region_id = t_post_city.city_id 
where t_country.short_name like %india% 
t_region.region_name like %sitapura% 
union 
select post_id 
from t_post_city 
inner join t_region on t_region.region_id = t_post_city.city_id 
inner join t_country on t_region.country_id = t_country.country_id 
where t_country.short_name like %india% 
union 
select post_id 
from t_post_city 
inner join t_region on t_region.region_id = t_post_city.city_id 
inner join t_states on t_region.province_id = t_states.state_id 
where t_states.name like %rajasthan%; 
1
select * 
from t_post_city 
LEFT OUTER join t_region on t_region.region_id = t_post_city.city_id 
LEFT OUTER join t_country on t_region.country_id = t_country.country_id 
LEFT OUTER join t_states on t_region.province_id = t_states.state_id 
where t_country.short_name like '%india%' 
or t_states.name like '%rajasthan%' 
or t_region.region_name like '%sitapura%' 
関連する問題

 関連する問題