![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 26.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Kiepski jestem w tym temacie
![]() Problem jest tego typu, iż tylko jeden z trzech kluczy w głowej tabeli zawsze przybiera jakąś wartość, natomiast pozostałe dwa klucze obce mogą przyjmować (choć nie muszą) NULL.
klucze w tabeli klienci_umowy tj. id_opcji_t2, id_opcji_t3 (tutaj akurat nie ma) moga miec jakas wartosc, ale rownie dobrze moga byc puste. Natomiast id_opcji_t1 zawsze przyjmuje jakas wartosc. W wyniku powiazan, w przypadku, gdy wartosc klienci_umowy.id_opcji_t2 ma wartosc nULL, wszystkie pola z tabeli opcje_t1 i opcje_t2 przyjmuja wartosc NULL, co oczywiscie jest bledem.. powinno zwrocic wartosci w polach tabeli opcje_t1, a NULL opcje_t2 (jesli klienci_umowy.id_opcji_t2 mialo bylo puste) Jak to poprawic? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Ciężko zrozumieć o co Ci chodzi, ale o ile dobrze wywnioskowałem to
Wtedy pobierać Ci będzie tylko z tych tabel, gdzie się zgadzają klucze, o ile o to chodziło. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tutaj chyba bardziej odpowiednie byłoby użycie RIGHT JOIN
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 26.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ciężko zrozumieć o co Ci chodzi, ale o ile dobrze wywnioskowałem to
Wtedy pobierać Ci będzie tylko z tych tabel, gdzie się zgadzają klucze, o ile o to chodziło. Wielkie dzięki. Po użyciu LEFT JOIN w podaym przez Ciebie zapytaniu wyniki zwraca tak jak chciałem. Czyli jeśli klienci_umowy.id_opcji_t2 jest NULL, to zwroci tabele zaweirajaca NULL. Powyzszy JOIN tak jak piszesz zwracalby wynik TYLKO gdyby klienci_umowy.id_opcji_t2 mialo powiazanie z tabela opce_t2 a nie o to do końca chodziło. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:07 |