Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 1.05.2010 Ostrzeżenie: (0%)
|
Witajcie,
Mam problem z pewnym prostym zapytaniem. Mam dwie tabele z tym że druga powstała później więc ma mniejszy zakres danych. Potrzebuję teraz zrobić selecta aby wyświetlić zawartość tabeli pierwszej w taki sposób aby po połączeniu z tabelą 2 pominął określone rekordy czyli wyświetla całą tabelę 1 natomiast wiersze które dają się połączyć z tabelą 2 warunkowo pominął. I mam takie zapytanie:
Pominąłem tu wypisywanie wszystkich danych (DATA_1, DATA_2 ...). W wyniku tego zapytania oczekiwałem że rekordy gdzie STATUS ma wartość 'Zakończono' zostaną pominięte. Natomiast tak się nie dzieje. Wyświetla wszystko wraz z rekordami gdzie status ma wartość Zakończono. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%)
|
Rozumiem, że tu masz dwa problemy. Pierwszy z tymi tabelami. Możesz go załatwić przez LEFT JOIN z użyciem NULL. Czyli:
SELECT n.* FROM nowa n LEFT JOIN stara s ON s.id=n.id WHERE s.id IS NULL W tym drugim musisz doczytać jak się zachowuje warunek we WHERE, a jak w (LEFT) JOIN. Pza tym, jak dajesz we WHERE warunek na tabelę z LEFT JOIN (oprócz sprawdzenia IS NULL), to tego LEFT możesz sobie darować... |
|
|
|
lukpio3 Łącznie dwóch tabel 14.01.2017, 16:49:15
lukpio3 Jeżeli użyję klauzuli WHERE czyli zrobię:
[SQL] po... 14.01.2017, 19:42:03
trueblue [SQL] pobierz, plaintext WHERE S.STATUS != 'Zakońc... 14.01.2017, 21:08:08
lukpio3 Co prawda rozwiązałem już problem poprzez kilka se... 14.01.2017, 22:34:50 ![]() ![]() |
|
Aktualny czas: 19.11.2025 - 10:11 |