Ich habe eine Abfrage, die mir alle Benutzer aus dem speziellen Bereich zurückgeben sollte. Wenn ich Bereiche hätte, wäre das Ergebnis immer noch gleichSQL: Wie man "und" und "oder" in einer "Where" -Klausel mit "NOT IN" -Bedingungen verwendet
SELECT users.id AS id, SUBSTRING(users.zipcode, 1, 2)
FROM users JOIN country ON users.country_id = country.country_id
WHERE country.country_code NOT IN ('AD','AF','BE')
OR (country.country_code = 'FR' AND SUBSTRING(users.zipcode, 1, 2)
NOT IN (69,38,26,07,42))
id | Benutzer_Zipcode | country_code
1 | 38 | FR
1 | 69 | BE
Ich möchte nicht alle Benutzer mit country_code 'AD', 'AF', 'BE' aber wenn country_code ist "FR" ich will nicht nur diejenigen mit den user_zipcode 69,38,26,07, 42
können Sie Beispieldaten und die gewünschten Ergebnisse liefern? Das würde uns helfen zu verstehen, was Sie zu tun versuchen. –
Ich denke "FR" muss in der 1. nicht enthalten sein. Da müssen besondere Zusatzbedingungen berücksichtigt werden. Es scheint, als ob Sie alle Benutzer nicht in den Ländern AD, AF, BE und FR möchten, vorausgesetzt, die Postleitzahl ist (69,38,26,07,42). wenn korrekt, dann muss FR in der 1. nicht in sein. Auch nicht in Betracht ziehen funktioniert nicht sehr gut mit NULL-Werten. Wenn – xQbert
Länder: Andorra, Afghanistan und Belgien Französisch Abteilungen: Rhone, Isere, Drome, Ardeche und Loire. Bitte erläutern Sie, was Sie hier machen wollen. – Stavr00