Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Złączenie 3 tabel, jak wyżej
bpawlik
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 13.01.2005

Ostrzeżenie: (0%)
-----


Witam

Pewnie było już na forum, ale wyszukiwarka jest tragiczna w działaniu (IMG:http://forum.php.pl/style_emoticons/default/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??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
bpawlik
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 13.01.2005

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


full outer join
Go to the top of the page
+Quote Post
sobstel
post
Post #5





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
bpawlik
post
Post #7





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 13.01.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 18:45