Witam,

Mam taki oto problem:

Zastanawiam się jak zrobić bazę danych do meczów piłkarskich.
Chodzi o to że jest tabela MECZ i jak to w każdym meczu (najczęściej bywa) jest GOSPODARZ i jest GOŚĆ spotkania.
no i tak, zrobiłem dwie tabele:

TABLE druzyna(id,nazwa)
TABLE mecz(id,gosc,gospodarz,id_druzyna)

Jednak będzie problem z wyborem dwóch druzyn do zapytania, które ma dopasować rekordy tak aby wiadomo było kto z kim gra.

I teraz zastanawiam się jak będzie najbardziej optymalnie zrobić. Czy np dodać jeszcze dwie następujące tabele:

TABLE druzyna_gosc(id,id_druzyna)
TABLE druzyna_gospodarz(id,id_druzyna)

i wtedy:

TABLE druzyna(id,nazwa)
TABLE mecz(id,id_gosc,id_gospodarz)

i zapytanie:

  1. SELECT id_gosc,id_gospodarz
  2. FROM mecz AS m
  3. INNER JOIN druzyna_gospodarz AS d1
  4. ON m.id_gospodarz = d1.id
  5. INNER JOIN druzyna_gosc AS d2
  6. ON m.id_gosc = d2.id



nie mam pomysłu jak to zrobić, ale wydaje mi się że właśnie potrzebne są dodatkowe tabele GOSC i GOSPODARZ ktore powiązane powinny być z tabelą DRUZYNA, natomiast tabela MECZ powinna być powiązana z tabelami GOSC i GOSPODARZ



proszę o podpowiedź, dzięki






ale tak sobie myślę że to chyba też nie tak ... wydaje mi się że powinienem chyba powielić rekordy tzn. zarówno do tabeli GOSC wpisać nazwy druzyn jak i do tabeli GOSPODARZ wpisać wszystkic nazwy druzyn

problem jest w tym, że muszę pobrać dwa razy nazwę zespołu

jest jakieś zapytanie, które pobierze dwa razy tą samą kolumnę z jednej tabeli ?












ok .. sam sobie poradziłem

znalazłem podpowiedź na tej stronie:

http://www.gajdaw.pl/bd/zlozone-zapytania-sql/print.html



Wystarczą tylko dwie tabele:

DRUZYNA(id,nazwa)
MECZ(id,id_gosc,id_gospodarz)

i jeśli w tabeli MECZ będzie rekord o danych: (1,2,3) gdzie (1 kolejny rekord, 2 - druzyna o id 2 z tabeli DRUZYNA, 3 - druzyna o id 3 z tabeli DRUZYNA)


to wtedy zapytanie wystarczy zrobić tak:

  1. SELECT k1.nazwa, k2.nazwa
  2. FROM mecz AS m
  3. INNER JOIN druzyna AS k1
  4. ON m.id_druzyna_gospodarz = k1.id
  5. INNER JOIN druzyna AS k2
  6. ON m.id_druzyna_gosc = k2.id



dodam, że temat można zamknąć