![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 1 Dołączył: 21.02.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam,
problem przedstawia się następująco.. jest kilka identycznych tabel TABELA mag (27000+ rekordów) tw_Symbol | tw_Nazwa | st_Stan | tc_CenaBrutto1 TABELA skl_1 (6800+ rekordów) tw_Symbol | tw_Nazwa | st_Stan | tc_CenaBrutto1 TABELA skl_2 (6700 rekordów) tw_Symbol | tw_Nazwa | st_Stan | tc_CenaBrutto1 kolumny Symbol i nazwa w każdej tabeli są identyczne różnica jest w kolumnach Stan wszystkie kolumny Symbol są ustawione jako Primary KEY tabela mag jest tabelą "matką" i zawiera wszystkie możliwe rekordy zapytanie brzmi nastepująco
kod wyświetlający
problem polega na tym, że wyświetlają się rekordy, ale ograniczone tabelą zawierającą najmniejsza ilość rekordów. w tym przykładzie 5700 chciałbym aby wyświetlało mi wszystkie 21000 rekordów które są zapisane w tabeli mag a w przypadku braku jakiegoś symbolu w którejś z tabel rekordy zmienna '.$row["skl_Stan"].' zwracałaby puste pola gdzie zrobiłem błąd ? Ten post edytował pa-jong 7.01.2012, 23:42:22 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 98 Pomógł: 33 Dołączył: 10.05.2011 Skąd: Krak Ostrzeżenie: (0%) ![]() ![]() |
Wynik jest jaki jest bo w tym zapytaniu dla każdej tabeli musi być spełniony warunek. Wystarczy, że w jednej tabeli nie będzie towaru i już warunek nie jest spełniony, więc ten towar w pozostałych tabelach też zostanie pominięty.
Połącz je left joinem
Zakładam że w tabeli mag masz elementy odpowiadające wszystkim elementom z pozostałych tabel. Inaczej będzie trzeba zastosować FULL JOIN, którego nie ma w Mysqlu. W takim wypadku trzeba trochę kombinować http://www.xaprb.com/blog/2006/05/26/how-t...-join-in-mysql/ Ten post edytował droslaw 8.01.2012, 00:47:50 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 1 Dołączył: 21.02.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
LEFT JOIN... no przecież... dzięki
![]() ale.. czy aby nie będzie problemów w przypadku kiedy takich tabel będzie 20+ ? czy nie spowolni to znacznie zapytania? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 20:12 |