Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Złączenie 3 tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
bpawlik
Witam

Pewnie było już na forum, ale wyszukiwarka jest tragiczna w działaniu mad.gif więc:
1. mam 3 tabele
2. Tabela1 - id, nazwa, ilosc
3. Tabela2 - id, nazwa, ilosc
4. Tabela3 - id, nazwa, ilosc
Dane w poszczególnych tabelach pochodzą z różnych okresów.
Krótko mówiąc nazwa - nazwa firmy, ilość - wartość sprzedaży

Kod
Tabela 1
1 | A | 5
2 | B | 7
3 | C | 9


Kod
Tabela 2
1 | A | 3
2 | C | 4
3 | D | 2


Kod
Tabela 3
1 | B | 5
2 | C | 7
3 | E | 9


Teraz chcę coś takiego (zestawienie sprzedaży wg firm za 3 różne okresy)
Kod
Wynik (id, nazwa, ilosc z t1, ilosc z t2, ilosc z t3)
1 | A | 5 | 3 | NULL
2 | B | 7 | 5 | 5
3 | C | 9 | 4 | 7
4 | D | NULL | 2 | NULL
5 | E | NULL | NULL | 9


Any ideas??
SongoQ
Z ta nazwa troszeczke nie tak, bo nazwa powinna byc relacja do innej tabeli, ale zaluzmy ze w Twoim przypadku identyfikujesz przez nazwe.

W tym zapytaniu nie mozesz zwrocic id no chyba ze id pierwszej tabeli.

Zapytanie cos w tym stylu:

  1. SELECT t1.id, t1.nazwa t1.ilosc AS i1, t2.ilosc AS i2, t3.ilosc AS i3
  2. FROM tabela1 t1 LEFT JOIN tabela2 t2 ON (t1.nazwa = t2.nazwa) LEFT JOIN tabela3 t3 OtN (t1.nazwa = t3.nazwa)


Mam nadzieje ze to zapytanie Cie naprowadzi na wlasciwy tor.
bpawlik
witam

no jest prawie ok

ale..

dostaje tylko firmy, ktore wystepuja w t1,
niestety nie ma firm, ktore wystepuja TYLKO w t2 lub t3
(nie dostaje firmy D i E)

any ideas?
SongoQ
full outer join
sobstel
Cytat(SongoQ @ 2005-07-18 12:58:02)
full outer join

z tego co mi wiadomo full outer join nie jest dostepne w mysqlu.

moze pokombinowac jakos z UNION i moze CREATE TEMPORARY TABLE...
SongoQ
Cytat
z tego co mi wiadomo full outer join nie jest dostepne w mysqlu.

Niezle - porazka totalna.

Mozesz zrobic tak jak @sopel napisal Z UNIONem, czyli Kombinacje np LEFT JOINow i laczyc UNION.
bpawlik
udało się
stworzyłem sobie tabelkę z nazwami wszystkich klientów (A,B,C,D,E) i potem left join 4 tabel i jest okej

dzieki za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.