Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Łącznie dwóch tabel
lukpio3
post
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:

  1. SELECT Z.ID_ZAP, Z.DATA_1, Z_DATA_2 .....
  2. FROM ZAPYTANIA Z
  3. LEFT JOIN STATUSY S ON Z.ID_ZAP = S.ID_ZAP
  4. AND S.STATUS != 'Zakończono'
  5. ORDER BY ID_ZAP DESC


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mmmmmmm
post
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ć...
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.11.2025 - 10:11