ďťż
 
pobranie danych z 3 tabel ďťż
 
pobranie danych z 3 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

pobranie danych z 3 tabel



DeXtoR27 - 24-10-2005 19:53
pobranie danych z 3 tabel
 
Witam

Są sobie trzy tabele

Tab.1

budowy
-------
id_budowy
id_dostawcy
id_kraju
nazwa_budowy

Tab.2

dostawcy
--------
id_dostawcy
id_budowy
id_kraju
nazwa_dostawcy

Tab.3

kraj
--------
id_kraju
nazwa_kraju

No i chcę za jednym zapytaniem wyciągnąć nazwę kraju dla budowy i
dostawcy.
No i nie bardzo mi wychodzi :)

--
DeXtoR





DeXtoR27 - 24-10-2005 19:53

 
baza jest na mysql

--
DeXtoR
gg: 3811238 // ICQ: 162295582 // Tlen: donremigio // WPK: donremigio
www.krolak.imn.pl // www.master-of-orion.sztab.com // www.sztab.com
www.tap3tki.glt.pl




Robert Grabowski - 24-10-2005 19:53

  DeXtoR27 wrote:
> Witam
[...]
>
> No i chcę za jednym zapytaniem wyciągnąć nazwę kraju dla budowy i
> dostawcy.
> No i nie bardzo mi wychodzi :)
>
>

Złączenia tabel to elementarz - poczytaj o JOIN.

pozdrawiam
Robert Grabowski




DeXtoR27 - 24-10-2005 19:53

  Robert Grabowski napisał(a):

> Złączenia tabel to elementarz - poczytaj o JOIN.

W tym problem że czytam i nie rozumiem :)

Nie jest dla mnie problemem wyciągnięcie informacji z pól o różnych
nazwach np.:

SELECT budowy.nazwa_budowy, dostawcy.nazwa_dostawcy
FROM budowy, dostawcy
WHERE budowy.id_dostawcy = dostawcy.id_dostawcy

Problem mam w tym że w jednej tabeli id_kraju wskazuje na jakiś rekord
w tabeli z krajami, i w drugiej tabeli wskazuje na inny kraj

I jak wyciągnąć na raz pole nazwa_kraju dla budowy i dostawcy

--
DeXtoR





Jarosław Szczepankiewicz - 24-10-2005 19:53

  poczytaj o aliasach




DeXtoR27 - 24-10-2005 19:53

 
Udało mi się zmajstrować coś takiego:

SELECT dostawcy.nazwa_dostawcy,
budowy.nazwa_budowy,
dk.nazwa_kraju AS nazwa_kraju_dostawcy,
bk.nazwa_kraju AS nazwa_kraju_budowy
FROM dostawcy LEFT JOIN kraj AS dk ON dostawcy.id_kraju = dk.id_kraju,
budowy LEFT JOIN kraj AS bk ON budowy.id_kraju = bk.id_kraju
WHERE budowy.id_dostawcy = dostawcy.id_dostawcy

Działa

Dziękuję za wskazówki

--
DeXtoR




Robert Grabowski - 27-10-2005 23:55

  DeXtoR27 wrote:
> Udało mi się zmajstrować coś takiego:
>
> SELECT dostawcy.nazwa_dostawcy,
> budowy.nazwa_budowy,
> dk.nazwa_kraju AS nazwa_kraju_dostawcy,
> bk.nazwa_kraju AS nazwa_kraju_budowy
> FROM dostawcy LEFT JOIN kraj AS dk ON dostawcy.id_kraju = dk.id_kraju,
> budowy LEFT JOIN kraj AS bk ON budowy.id_kraju = bk.id_kraju
> WHERE budowy.id_dostawcy = dostawcy.id_dostawcy
>
>
> Działa
>
> Dziękuję za wskazówki
>

Da się to jeszcze ładniej napisać rezugnując z where na rzecz joina
tabel dostawcy i budowy.

select
d.nazwa_dostawcy, b.nazwa_budowy, dk.nazwa_kraju, bk.nazwa_kraju
from
budowy b
join dostawcy d on b.id_dostawcy = d.id_dostawcy
left outer join kraj dk on d.id_kraju = dk.id_kraju
left outer join kraj bk on b.id_kraju = bk.id_kraju

Nie wiem, czy left outer joiny są konieczne - to już zależy od struktury
Twojej bazy danych.

pozdrawiam
Robert Grabowski
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    =?iso-8859-2?Q?=5BMySQL=5D_Wy=B6wietlenie_wszystkich_rekordow _zawierajacy?==?iso-8859-2?Q?ch_duplikat_a__moze_inna_struktura_bazy_danych ?= Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8 [laik]Jak =?ISO-8859-2?Q?stworzy=E6/zaczac_tworzyc__ma=B3=B1?==?ISO-8859-2?Q?__baz=EA_danych_na_potrzeby_www=3F?= [mysql] przenoszenie danych =?ISO-8859-2?Q?mi=EAdzy_tabelami_?==?ISO-8859-2?Q?w_r=F3=BFnych_bazach?= Ksiazka - "Podstawowy =?ISO-8859-2?Q?wyk=B3ad_z_system=F3w_?==?ISO-8859-2?Q?baz_danych=22?= Zrywanie =?ISO-8859-2?Q?po=B3aczen_z_baza_danych_-_pos?==?ISO-8859-2?Q?tgresql_=3C-=3E_odbc?= Połączenie bazy danych z wykonaniem polaczenia telefonicznego [mssql] insert do tabeli na podstawie danych z innej tabeli [oracle] Baza danych do kursy Introduction to Oracle9i:PL/SQL ? Skąd ją pobrać ? [MySQL] - Wstawianie aktualnej daty do bazy danych - PHP i MySQL
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • felgiuzywane.xlx.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