=?iso-8859-2?Q?Zapytanie_z_dw=F3ch_tabel?=
Jajcarz - 30-03-2007 00:07
=?iso-8859-2?Q?Zapytanie_z_dw=F3ch_tabel?=
Witam.
Mam taki problem. Otóż załózmy że mam 2 tabele np.
tabela A id nazwa idkat idgrupa 1 odkurzacz 1 1 2 tłumik A 2 3 3 jednostka 1 2
tabela B id nazwa idkat idgrupa 1 gniazdo 3 4 2 szufelka 4 5
tabela kategorie idkat nazwa 1 pakiety 2 akcesoria 3 instalacja 4 części
tabela grupy idgrupa nazwa 1 pakiet A 2 pakiet B 3 tłumiki 4 gniazda 5 szufelki
I teraz pytanie czy jest możliwość wykonania takiego zapytania aby wynikiem były wszystkie wiersze z obu tabel ale połączone w taki sposób:
id nazwa kategorie.nazwa grupy.nazwa 1 odkurzacz pakiety pakiet A 2 tłumik akcesoria tłumiki 3 jednostka pakiety pakiet B 1 gniazdo instalacja gniazda 2 szufelka części szufelki
bo gdyby zapytanie dotyczyło jednej tabeli to mogłoby być tak poniżej, no ale żeby połączyć wyniki tak jak powyżej to nie wiem jak to zrobić i czy to jest możliwe
select A.nr, A.nazwa, kategorie.nazwa, grupy.nazwa from A, grupy, kategorie where A.idgrupa=grupy.idgrupa and A.idkat=kategorie.idkat;
Dodam że zapytanie dotyczy bazy mysql-a
Dzięki pozdrawiam
Grzegorz Danowski - 30-03-2007 00:07
=?iso-8859-2?Q?Re:_Zapytanie_z_dw=F3ch_tabel?=
"Jajcarz" <jajcarzd1@poczta.onet.pl> wrote in message news:eug1c1$qps$1@nemesis.news.tpi.pl... .... > tabela A > id nazwa idkat idgrupa > 1 odkurzacz 1 1 > 2 tłumik A 2 3 > 3 jednostka 1 2 > > tabela B > id nazwa idkat idgrupa > 1 gniazdo 3 4 > 2 szufelka 4 5 .... > I teraz pytanie czy jest możliwość wykonania takiego zapytania aby > wynikiem były wszystkie wiersze z obu tabel ale połączone w taki sposób: > > id nazwa kategorie.nazwa grupy.nazwa > 1 odkurzacz pakiety pakiet A > 2 tłumik akcesoria tłumiki > 3 jednostka pakiety pakiet B > 1 gniazdo instalacja gniazda > 2 szufelka części szufelki > > bo gdyby zapytanie dotyczyło jednej tabeli to mogłoby być tak poniżej, no > ale żeby połączyć wyniki tak jak powyżej to nie wiem jak to zrobić i czy > to jest możliwe > > select A.nr, A.nazwa, kategorie.nazwa, grupy.nazwa > from A, grupy, kategorie > where A.idgrupa=grupy.idgrupa and > A.idkat=kategorie.idkat;
Jeśli nie możesz obu rodzajów danych trzymać w jednej tabeli, to użyj klauzuli Union, czyli:
select A.nr, A.nazwa, kategorie.nazwa, grupy.nazwa from A, grupy, kategorie where A.idgrupa=grupy.idgrupa and A.idkat=kategorie.idkat
Union select B.nr, B.nazwa, kategorie.nazwa, grupy.nazwa from B, grupy, kategorie where B.idgrupa=grupy.idgrupa and B.idkat=kategorie.idkat;
-- Pozdrawiam Grzegorz
Jajcarz - 30-03-2007 00:07
=?iso-8859-2?Q?Re:_Zapytanie_z_dw=F3ch_tabel?= Użytkownik "Grzegorz Danowski" <gdn__na@serwerze__poczta.onet.pl> napisał w wiadomości news:eug1ts$auo$1@inews.gazeta.pl... > Jeśli nie możesz obu rodzajów danych trzymać w jednej tabeli, to użyj > klauzuli Union, czyli: > > select A.nr, A.nazwa, kategorie.nazwa, grupy.nazwa > from A, grupy, kategorie > where A.idgrupa=grupy.idgrupa and > A.idkat=kategorie.idkat > > Union select B.nr, B.nazwa, kategorie.nazwa, grupy.nazwa > from B, grupy, kategorie > where B.idgrupa=grupy.idgrupa and > B.idkat=kategorie.idkat;
No fakt działa. Połączyć danych z obu tabel za bardzo nie mogę a z tego względu że tutaj podałem tylko 4 pierwsze kolumny z tabeli A i B a w rzeczywistości zarówno jedna jak i druga ma jeszcze kilka innych, które występują tylko w jednej tabeli. I w związku z tym pytanie bo widze że jak dałem w zapytaniach
select A.* > from A, grupy, kategorie > where A.idgrupa=grupy.idgrupa and > A.idkat=kategorie.idkat > > Union select B.* > from B, grupy, kategorie > where B.idgrupa=grupy.idgrupa and > B.idkat=kategorie.idkat;
to mam błąd róznych kolumn. Czy jest możliwość połączenia ale jeśli np w tabeli B nie będzie jakiejś kolumny to w wyniku żeby było np. NULL i odwrotnie
id nazwa kategorie.nazwa grupy.nazwa ....... szerokosc > 1 odkurzacz pakiety pakiet A 100 > 2 tłumik akcesoria tłumiki > 20 3 jednostka pakiety pakiet B > 30 > 1 gniazdo instalacja gniazda > NULL > 2 szufelka części szufelki > NULL
Jajcarz - 30-03-2007 00:07
=?iso-8859-2?Q?Re:_Zapytanie_z_dw=F3ch_tabel?= Użytkownik "Jajcarz" <jajcarzd1@poczta.onet.pl> napisał w wiadomości news:eug3h4$44s$1@nemesis.news.tpi.pl...
Coś się przesunęło więc może tu będzie lepeij widać
id nazwa kategorie.nazwa grupy.nazwa ....... szerokosc 1 odkurzacz pakiety pakiet A 100 2 tłumik akcesoria tłumiki 20 3 jednostka pakiety pakiet B 30 1 gniazdo instalacja gniazda NULL 2 szufelka części szufelki NULL
Grzegorz Danowski - 30-03-2007 00:07
=?iso-8859-2?Q?Re:_Zapytanie_z_dw=F3ch_tabel?=
"Jajcarz" <jajcarzd1@poczta.onet.pl> wrote in message news:eug3h4$44s$1@nemesis.news.tpi.pl... >> Jeśli nie możesz obu rodzajów danych trzymać w jednej tabeli, to użyj >> klauzuli Union, czyli: .... > No fakt działa. Połączyć danych z obu tabel za bardzo nie mogę a z tego > względu że tutaj podałem tylko 4 pierwsze kolumny z tabeli A i B a w > rzeczywistości zarówno jedna jak i druga ma jeszcze kilka innych, które > występują tylko w jednej tabeli. I w związku z tym pytanie bo widze że jak > dałem w zapytaniach > > select A.* >> from A, grupy, kategorie >> where A.idgrupa=grupy.idgrupa and >> A.idkat=kategorie.idkat >> >> Union select B.* >> from B, grupy, kategorie >> where B.idgrupa=grupy.idgrupa and >> B.idkat=kategorie.idkat; > > to mam błąd róznych kolumn. Czy jest możliwość połączenia ale jeśli np w > tabeli B nie będzie jakiejś kolumny to w wyniku żeby było np. NULL i > odwrotnie
W bazach z którymi miałem styczność tak się nie da - jeśli w obu tabelach są różne kolumny, to trzeba explicite zapodać wszystkie kolumny, które chce się mieć w wyniku. Oczywiście nie przeszkadza to by w jednej z części Union takich kolumn nie było (a był Null), np.:
select A.id, A.nazwa, kategorie.nazwa, grupy.nazwa, szerokosc from A, grupy, kategorie where A.idgrupa=grupy.idgrupa and A.idkat=kategorie.idkat
Union select B.id, B.nazwa, kategorie.nazwa, grupy.nazwa, Null from B, grupy, kategorie where B.idgrupa=grupy.idgrupa and B.idkat=kategorie.idkat;
-- Pozdrawiam Grzegorz
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Czy zna (obsługuje) ktoś program Iso Draw ?
MYSQL - kodowanie w ISO-PL
strona plus baza w iso do utf-8
Kodowanie: z iso na utf
mecze sie i mecze i nic - zapytanie czesciowe
[sql][pgsql] zapytanie sql
[mysql 4.0] SELECT t1.id, t1.foo FROM t1 oraz COUNT t2 w jednym zapytaniu.
[MySQL] Zapytanie z pliku , wynik do pliku
pytanie o zapytanie z having count = count z innej kolumny
zanotowane.pldoc.pisz.plpdf.pisz.ploefg.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|