![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 4 Dołączył: 6.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
Mam dwie tabele, w ktorych tylko 2 kolumny sa takie same, przyklad: tabela_nr1
tabela_nr2
i chcialbym za pomoca selecta uzyskac poloczone te dwie tabele na takiej zasadzie, ze dla tabeli nr 1 w miejscach gdzie wystepuja kolumny kolumna_e, kolumna_f wystepowaly wartosci NULL albo zeby w tych miejscach niczego nie bylo (pusta komorka) - podobnie dla tabeli nr 2:
Jest cos takiego mozliwe? |
|
|
![]() |
![]()
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 ![]() |
Tak, jest możliwe, ale nieco zamotane, gdyż musisz większość danych podać jawnie (IMG:style_emoticons/default/smile.gif)
Zakładając taką strukturę jaką podałeś będzie to wyglądało tak:
Taka składnia jest konieczna, ponieważ dla UNION ważna jest kolejność kolumn w pierwszej tabeli, gdyż to ona jest przedstawiana w wyniku. Jeśli luki będą inaczej, będziesz musiał wszystkie kolumny jawnie rozpisać, tak jak dla tabela_nr2. Niestety tak działa UNION i trzeba to zaakceptować. Przy UNION liczba kolumn w obu tabelach musi być identyczna i nazewnictwo kolumn wynikowych jest zgodne z tabelami w tabeli pierwszej, dlatego użyłem aliasów w tabela_nr1 by były zgodne z nazewnictwem w tabela_nr2, ale głównie tylko dla wygody, bo moglem je nazwać jakkolwiek. Mogłem w tabela_nr2 pominąć sobie także nazwanie ich jakkolwiek, bo nazwy kolumn przy UNION z drugiej tabeli są ignorowane przy wyniku i ważna jest tylko kolejność. Gdybym jednak najpierw chciał wyświetlić dane z tabela_nr2 to składnia zapytania wyglądała by tak:
W tym przykładzie kolumny są przemieszane z NULLami i konieczne jest jawne nazwanie ich by się nic nie porąbało Nam. W UNION niestety musimy uważać w jakiej kolejności jakie kolumny dajemy :/ Ten post edytował thek 24.08.2009, 00:08:40 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 4 Dołączył: 6.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo dziekuje za odpowiedz, postaram sie przetestowac to co napisales jak znajde chwile czasu, pozdr (IMG:style_emoticons/default/winksmiley.jpg)
P.S Jak cos bede Cie jeszcze meczyl (IMG:style_emoticons/default/tongue.gif) (IMG:style_emoticons/default/winksmiley.jpg) ======================== Dziala, dziekuje (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 18:12 |