Kiedy piszemy zapytanie SQL, klauzula WHERE powinna wyglądać tak: 'WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000'. Dlaczego to działa? Bo ta klauzula jasno określa, że interesują nas tylko mieszkańcy z ulicy Mickiewicza, mający numery 71, 72 lub 80, i którzy płacą czynsz mniejszy niż 1000 zł. Użycie AND sprawia, że wszystkie te warunki muszą być spełnione naraz, co jest naprawdę ważne. Możemy to sobie wyobrazić w kontekście zarządzania nieruchomościami, gdzie chcemy pokazać tylko wybraną grupę mieszkańców, na przykład do analizy ich sytuacji finansowej. I tak na marginesie – w SQL lepiej unikać OR, gdy chcemy dostąpić do jasno określonych danych, ponieważ może to dać nam za dużo wyników lub takie, których nie chcemy.
Jak patrzę na twoje odpowiedzi, to widzę, że główny problem leży w tym, jak używasz operatorów logicznych i jak stawiasz warunki. W pierwszej próbie, zastosowanie OR, czyli 'ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czynsz < 1000', prowadzi do tego, że dostaniesz dane wszystkich mieszkańców, nawet tych z innych ulic, co zupełnie nie jest tym, czego szukamy. W drugiej opcji, klauzula 'numer > 70 AND numer < 81' znowu nie daje ci dokładnych numerów mieszkań, bo może zwrócić wyniki spoza naszego zakresu. Trzecia wersja też nie wychodzi najlepiej, bo łączy operator OR i przez to dostajesz dane o czynszu poniżej 1000 zł, niezależnie od lokalizacji. Kluczowy błąd w zrozumieniu SQL polega na tym, że AND i OR różnią się w swoich zastosowaniach i wpływają na końcowy wynik. Ogólnie, lepiej starannie przemyśleć zapytania SQL i testować je na małych zbiorach danych, żeby nie wpaść w pułapki.