2016-08-09 17 views
-2

ロケーションベースの階層データを照会する必要があります。しかし、私はどのようにデータを照会するためのアプローチを行う上で問題を抱えています。ここに私のデータベースのサンプルデータがあります。0の値を含むテーブルを照会するmy sql

enter image description here

は今、私は場所のフィルターからベースの製品を照会します。したがって、country_idが7で状態が1の製品を選択する場合は、値が7のすべての国と値が1のすべての国を取得しますが、idが0のすべての国も含めますどの状態でも割り当てられていないためです。どうすればこれを達成できますか?あなたはorを使用することができます

+1

期待どおりの結果が得られましたか? – sgeddes

+0

'state'のみが0または1の場合、このselect * from yourtable where country_id = 7'を使用できます。 http://sqlfiddle.com/#!9/47a731/1 – Blank

+1

明確になるまで投票しないと明確になりました。コメントは尋ねられましたが、回答も編集もありませんでした。あなたは答えにしか反応しませんか? –

答えて

1

where country_id = 7 and 
     (state = 1 or state = 0) 

通常、私はこれを記述します。

where country_id = 7 and state in (0, 1) 
+0

上記に基づいて、 'country_id = 7'は状態がすべて0になります。\ –

+0

@ダゴンはもう一度質問を読んでいます。 * "しかし、それはいかなる状態にも割り当てられていないので、0のIDを持つすべての状態を含むでしょう" * - ゴードンの権利はこの上にあります。 –

+0

ご回答いただきありがとうございます。これは他の列と同じですよね?都市と地域のために。 – banri16

0

私はあなたが1または0(なし状態として状態IDを持っているプロダクトIDを探している願っています)。 このmysqlクエリはあなたのために働くでしょう。

テーブルからのProductIdを選択(0,1)

0

でCOUNTRY_ID = 7とSTATE_IDこれを試しここ。

select * from yourtable where country_id = 7 and state_id in(1, 0) 
関連する問題