![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Mam 3 tabeli
tabela_1a (W ORYGINALE NAZYWA SIĘ tp): id | pid | name --------------- 1 | 0 | nazwa tabela_1b (W ORYGINALE NAZYWA SIĘ ptk): id | pid | name --------------- 1 | 0 | nazwa (muszą być 2 tabeli o identycznej strukturze, bo jedna tabela zawiera dane jednej firmy, a druga drugiej firmy, o półączeniu tych tabel nie ma mowy, bo w takiej formie je zastałem) tabela 2: id | id_od* | skad | dokad | id_do ---------------------------------------------- 1 | 1 | tabela_1a| info** | info** * klucz obcy tabeli tabela_1a lub tabela_1b ** - pobieram z $_GET["zmienna"] Tabela 2 zawiera dane: id - wiadomo id_od - wskazuje na id elementu z tabeli tabela_1a LUB tabela_1b skad - wskazuje na tabelę tabela_1a LUB tabela_1b dokad - to takie tam mało ważne info id_do - na podstawie tego chcę oprzeć całe zapytanie, zmienną tą pobieram z $_GET["zmienna"] Tabela 2 gromadzi tzw raportowania, wiele jednostek z tp może raportować do wielu jednostek z ptk i na odwrót, więc wskazuje najpierw ID jednostki raportującej, później jest nazwa firmy (tp lub ptk) skąd idzie raport, później jest wskazanie firmy do której idzie raport (tp lub ptk) a później wskazanie ID jednostki do której idzie raport. i teraz co chcę zrobić: chcę pobrać id i name z tabeli albo tabela_1a, albo z tabela_1b w zależności od tego co jest w polu skad tabeli tabela 2 może być taka sytuacja, że dane id i name są pobierane z obu pierwszych tabel, a może być, że tylko z jednej z nich. Jak takie zapytanie wykonać? Próbowałem tak: SELECT t.name, upper(r.skad) AS skadDuze, r.skad AS skadMale FROM (SELECT skad FROM raporty WHERE id_do = 62) AS tabela t, raporty r WHERE r.dokad = 'tp' AND r.id_do = 62 AND r.id = t.id AND UNIX_TIMESTAMP( t.start ) <= UNIX_TIMESTAMP( DATE( NOW( ) ) ) AND UNIX_TIMESTAMP( t.stop ) >= UNIX_TIMESTAMP( DATE( NOW( ) ) ) czyli wykorzystując podzapytanie, które mi sprawdza wartosc pola skad i na podstawie tego generuje nazwe tabeli do dalszych zapytan, ale to nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Ten post edytował miedzna 20.02.2009, 13:41:43 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Sprobuj (pisane z palca, musisz sprawdzic)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc, ale nie bardzo to działa, bo aliasy pogubiłeś (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Kombinowałem i wyszło mi niestety 2 zapytania, jedno sprawdza warunek dla tabeli 1, a drugie dla tabeli 2, czy ktoś ma pomysł, żeby to połączyć?
A to zapytanie niby poprawne, ale wyciąga dane tylko z tabeli tp
już szlak mnie trafia... ten kod już prawie działa:
ale dodam jeszcze warunek operujący na datach:
to już wyświetla mi 0 wyników. Ten post edytował miedzna 20.02.2009, 14:09:40 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
To wlasnie przez aliasy Ci nie dziala bo na koniec stawiasz warunek z t1. Sprobuj moze:
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 10:21 |