Kolejny raz zwaracam się z prośbą do was.
Mam 2 tabele:
firma:
idFirmy, nazwa i coś tam jeszcze nieważne
umowy
idUmowy, numer, idFirmy, archiwalna i coś tam jeszcze
Jedna firma może mieć kilka umów, z czego tylko jedno która nie jest archiwalna. Jak dodajemy nową umowę, to inne umowy są oznaczane jako archiwalne.
Główkuje już dość długi czas nad zapytaniem pobierającym do dataGrida listę:
Wszystkich firm, a w ostatniej kolumnie numer ostatniej umowy, a jeśli nie ma umowy przypisanej do firmy, to puste pole:
1 | Firma Kogucik | Numer umowy
2 | Firma inna |
3 | Jeszcze inna | Inny numer
skleciłem:
SELECT * FROM firmy f LEFT JOIN umowy u ON f.id = u.idFirmy
Jest całkiem ok, wyświetla mi wszystkie firmy nawet te które nie mają umów w tabeli umowy, ale jeśli jakaś firma ma kilka umów, to powtarza mi je.
Jeśli zrobię tak:
SELECT * FROM firmy f LEFT JOIN umowy u ON f.id = u.idFirmy WHERE u.archiwalna = false
wtedy wybiera z kolei tylko te firmy, które mają jakąś umowę
Zastanawiam się czy istnieje taka możliwość wyboru tych danych.
Z góry dzięki za wskazówki.