2016-08-09 49 views
-2

Ich muss eine standortbasierte Hierarchie Daten abfragen. Aber ich habe Probleme, den Ansatz für die Abfrage der Daten zu tun. Hier sind Beispieldaten für meine Datenbank.Abfragen einer Tabelle mit 0 Wert mein sql

enter image description here

Jetzt möchte ich ein Produkt von Standortfilter basiert abzufragen. Also, wenn ich ein Produkt mit einer country_id von 7 und einem Zustand von 1 auswählen werde. Es wird alle Länder mit einem Wert von 7 abrufen und alle Staat mit einem Wert von 1, aber es wird auch alle Staat mit einer ID von 0 enthalten da es in keinem Staat zugewiesen wurde. Wie kann ich das erreichen?

+1

Was sind Ihre erwarteten Ergebnisse? – sgeddes

+0

Wenn 'state' nur 0 oder 1 hat, können Sie' select * from yuertable where country_id = 7' verwenden. http://sqlfiddle.com/#!9/47a731/1 – Blank

+1

Gewählt, um so unklar zu schließen, bis wir Klarheit bekommen. Kommentar gefragt, aber nicht beantwortet noch eine Bearbeitung. Sie antworten nur auf Antworten? –

Antwort

1

können Sie or verwenden:

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

Normalerweise ich dies als schreiben würde:

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

basierend auf dem oben ist es nur 'wo country_id = 7 'als Staat ist alles 0 \ 1 –

+0

@Dagon lesen ihre Frage erneut. * "Aber es wird auch alle Zustände mit einer ID von 0 beinhalten, da sie keinem Status zugewiesen sind" * - Gordon hat Recht. –

+0

Danke für Ihre Antwort. Das ist auch gleich mit der anderen Spalte, oder? für die Stadt und das Gebiet. – banri16

0

Ich hoffe, dass Sie für das Produkt-IDs suchen, die Staat-ID haben als 1 oder 0 (kein Zustand erwähnt). Diese MySQL-Abfrage wird für Sie arbeiten.

wählen ProductId aus der Tabelle, wo country_id = 7 und state_id in (0,1)

0

bereits.

select * from yourtable where country_id = 7 and state_id in(1, 0)