ďťż
 
=?iso-8859-2?Q?Zapytanie_z_dw=F3ch_tabel?= ďťż
 
=?iso-8859-2?Q?Zapytanie_z_dw=F3ch_tabel?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

=?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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • oefg.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com