Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Złączenie trzech tabel (w tym jednej podwójnie)
Forum PHP.pl > Forum > Bazy danych > MySQL
Archbishop
Witam!
Tworzę bazę ligi siatkarskiej i natknąłem się na mały problem.
Oto fragment bazy:

zespoly
----------
IdZespolu
NazwaZespolu

wynikiduze
--------------
IdMeczu
IdGospodarz
IdGosc
PktGospodarz
PktGosc
DataMeczu

wynikimale
-------------
IdMeczu
PktGosp1Set
PktGosp2Set
PktGosp3Set
PktGosp4Set
PktGosp5Set
PktGosc1Set
PktGosc2Set
PktGosc3Set
PktGosc4Set
PktGosc5Set


Chodzi o to, aby zrobic takie zapytanie, ktore pozwoli mi na wydobycie danych takich, jak:
Nazwa Gospodarza, Nazwa Goscia, Data Meczu, Wynik (PktGospodarz:PktGosc) i Wynik dla kazdego seta.

Probowalem juz roznych zapytan, ale nie moge sobie z tym poradzic.
Czy ktos moglby mi pomoc?
Pozdrawiam
bela
Zwraca w dwoch wierszach co prawda ale dziala.

  1. SELECT * FROM wynikiduze d, zespoly z, male m WHERE d.idgosp = z.id OR d.idgosc = z.id;


Kod
+----+--------+--------+---------+---------+------------+----+-------+--------+----------+----------+----------+----------+
| id | idgosp | idgosc | pktgosp | pktgosc | data       | id | nazwa | meczid | pktgosp1 | pktgosp2 | pktgosc1 | pktgosc2 |
+----+--------+--------+---------+---------+------------+----+-------+--------+----------+----------+----------+----------+
|  1 |      1 |      2 |      54 |      50 | 2006-12-30 |  1 | foo   |      1 |       27 |       27 |       25 |       25 |
|  1 |      1 |      2 |      54 |      50 | 2006-12-30 |  2 | bar   |      1 |       27 |       27 |       25 |       25 |
+----+--------+--------+---------+---------+------------+----+-------+--------+----------+----------+----------+----------+


[edit]
Wymyslilem

  1. SELECT * FROM wynikiduze d LEFT JOIN zespoly z ON (d.idgosp = z.id) LEFT JOIN zespoly x ON (d.idgosc = x.id) LEFT JOIN male m ON (d.id = m.meczid);


Kod
+----+--------+--------+---------+---------+------------+----+-------+----+-------+--------+----------+----------+----------+----------+
| id | idgosp | idgosc | pktgosp | pktgosc | data       | id | nazwa | id | nazwa | meczid | pktgosp1 | pktgosp2 | pktgosc1 | pktgosc2 |
+----+--------+--------+---------+---------+------------+----+-------+----+-------+--------+----------+----------+----------+----------+
|  1 |      1 |      2 |      54 |      50 | 2006-12-30 |  1 | foo   |  2 | bar   |      1 |       27 |       27 |       25 |       25 |
+----+--------+--------+---------+---------+------------+----+-------+----+-------+--------+----------+----------+----------+----------+
Archbishop
Wielkie dzieki!
Ale chodzilo mi raczej o to, aby w wynikowej tabeli nie bylo idgosp ani idgosc, tylko np. NazwaGosp i NazwaGosc.
Widze, ze tam jest nazwa foo i nazwa bar ale jak teraz wyciagnac je pojedynczo?
bela
Jest idgosp bo jest
  1. SELECT *

Trzeba poprostu podac jakie pola ma wybrac
Archbishop
No tak.
Ale chce pobrac nazwe gospodarza i nazwe goscia (nie ich id, tylko nazwy druzyn) tak, zeby potem przypisac je do osobnych zmiennych.
Jak pobieram poprzez 'NazwaZespolu' to bierze mi tylko jedna druzyne - goscia.
Jak sie odwolac do wyniku tego zapytania, abym mogl dysponowac nazwa gospodarza?
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.