![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 510 Pomógł: 1 Dołączył: 27.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
witam
złączam kilka tabel ze sobą po głównym id. przykładowo pole o nazwie 'id_wiersza' ma każda tabela i jest w niej numer, który identyfikuje każdy z wierszy. Podczas złączenia następuje połączenie wszystkich tabel bez względu na to czy istnieje dany wiersz czy tez nie. dlatego do części używam inner join, a do niektórych left join. problem polega na tym, że używając polecenia left join w momencie gdy podłączam tabele, w której nie znajduje się podany wierszy o tym samym id dane mimo tego są dopisywane do wyników w formie pól z zawartością NULL. Chciałbym podpinać tylko te tabele w których znajduje się dany wiersz. haczyk jest w tym, że podczas zapytania złączam wszystkie tabele ze sobą i chciałbym, aby wynik był bez pól z tabel, które nie posiadają danego wiersza. jak to zrobic ? jakie polecenie trzeba zadac ? czy w ogóle jest to możliwe ? pozdrawiam czy ktoś może pomóc ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A to nie możesz dać w warunku, że określone pole jednej z tabel nie może być NULL? Ja tak wycinam wiersze i działa (IMG:style_emoticons/default/winksmiley.jpg) Masz tabele - łączysz. Któraś z nich nie ma odpowiednika - wypełnia się nullami jak sam zauważyłeś. Wybieram którąś z kolumn tej dołączanej (najlepiej ta po której łączysz, bo na pewno wtedy będzie NULL) i w WHERE określam, że nie ma być tam NULL. Tak się wycina owe niepołączone z niczym wiersze. Warunek walisz jako AND dla każdej dołączanej tabeli. JOINujesz w sumie 5 tabel? To będzie 5 razy AND kolumna ISNOTNULL (IMG:style_emoticons/default/smile.gif) Sprawdź sam (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 06:25 |