![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 4.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam problem z zapytaniem, które pobierało by dane z kilku tabel (wszystkie jedno takie samo pole ale z innymi wartościami, a reszta pól jest różna), sortowało po tym polu wspólnym i zwracało je jako jedna tabela. Kombinowałem z UNION i JOIN, ale nie udało mi się uzyskać satysfakcjonującego rezultatu. Ale o co chodzi konkretnie? Przykład (pole jednakowe dla wszystkich tabel to datetime): tabela_A id | temperatura | wilgotnosc | datetime 1 | 25 | 60 | 2011-02-10 09:00:00 2 | 23 | 55 | 2011-02-10 10:00:00 3 | 24 | 50 | 2011-02-10 11:00:00 tabela_B id | moc | energia | datetime 1 | 100 | 1250 | 2011-02-10 08:00:00 2 | 110 | 1300 | 2011-02-10 10:10:00 3 | 500 | 1000 | 2011-02-10 12:00:00 W zapytaniu pobieram np. z tabela_A: temperatura, wilgotnosc i chyba datetime; z tabela_B: energia i chyba datetime (nie wiem czy z obu mam pobrać itp. - spójrzmy na wyniki czego potrzebuję). Tabela wynikowa z zapytania ma być zlepkiem obu tabel, ale pole wspólne (datetime) ma mieć jedno, które zawiera wartości z obu tabel. W miejscach, gdzie nie ma danych, mogą być NULLe. Sortowanie po datetime. Ma wyglądać tak: temperatura | wilgotnosc | energia | datetime NULL | NULL | 1250 | 2011-02-10 08:00:00 25 | 60 | NULL | 2011-02-10 09:00:00 NULL | NULL | 1300 | 2011-02-10 10:10:00 23 | 55 | NULL | 2011-02-10 10:00:00 24 | 50 | NULL | 2011-02-10 11:00:00 NULL | NULL | 1000 | 2011-02-10 12:00:00 Proszę o pomoc w zapytaniu, bo nie mogę nic wykombinować. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 12 Dołączył: 31.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Wybierasz najpierw wszystkie rekordy z tabeli_A + połączone po dacie rekordy z tabeli B Następnie wybierasz wszystkie rekordy z tabeli_B + połączone po dacie rekordy z tabeli A I łączysz wyniki UNION sortując po dacie
Pozdrawiam. Ten post edytował trafas 16.02.2011, 19:44:04 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 4.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ok dzięki (IMG:style_emoticons/default/smile.gif)
A jak wyglądała by procedura postępowania, kiedy miałbym 3 lub więcej takich tabel i chciałbym je wybrać na tej samej zasadzie co w powyższym przykładzie? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 12 Dołączył: 31.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Im więcej tabel tym sprawa bardziej się komplikuje.
Nie wiem czy nie prościej dla większej ilości tabel byłoby wrzucenie wyników do tabeli pomocniczej, na niej wykonać selecta ze złożeniem po polu data i po wykonaniu zapytania tabelę pomocniczą czyścić. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 06:07 |