Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> sql - złączenie 3 tabel, drobny problem
damianooo
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


Witam,

Mam następujące tabele:

  1. mecz(
  2. `id`,
  3. `gospodarz`,
  4. `gosc`,
  5. `skr_gospodarz`,
  6. `skr_gosc`,
  7. `br_gospodarz`,
  8. `br_gosc`,
  9. `opis`,
  10. `termin`,
  11. `pozycja`,
  12. `status_m`,
  13. `kolor`,
  14. `id_kolejka`,
  15. PRIMARY KEY (`id`)
  16. )
  17.  
  18. typ (
  19. `id`,
  20. `typ_gospodarz`,
  21. `typ_gosc`,
  22. `data_typ`,
  23. `id_mecz`,
  24. `id_gracz`,
  25. `id_kolejka`,
  26. PRIMARY KEY (`id`)
  27. )
  28.  
  29. punkty (
  30. `id`,
  31. `punkty`,
  32. `id_gracz`,
  33. `id_mecz`,
  34. `id_kolejka`,
  35. PRIMARY KEY (`id`)
  36. )



Czy takie zapytanie łączące wszystkie 3 tabele jest ok?

  1. SELECT m.id,m.gospodarz,m.gosc,m.br_gospodarz,m.br_gosc,p.punkty,t.typ_gospodarz,t.typ_gosc
  2. FROM mecz m
  3. INNER JOIN typ t
  4. ON (m.id = t.id_mecz) AND (m.id_kolejka = t.id_kolejka)
  5. INNER JOIN punkty p
  6. ON (m.id = p.id_mecz) AND (m.id_kolejka = p.id_kolejka) AND (m.id = t.id_mecz) AND (m.id_kolejka = t.id_kolejka) AND
  7. (p.id_mecz = t.id_mecz) AND (p.id_kolejka = t.id_kolejka) AND (p.id_gracz = t.id_gracz)
  8. WHERE (m.id_kolejka = 1) AND (t.id_gracz = 1) AND (m.status_m = 1)
  9. ORDER BY m.id ASC



Czemu otrzymuję pusty wynik? Co robię źle? Dodam że wszystkie tabele są wypełnione danymi. Dodam też że łączenie 2 dowolnych tabel działa.

dzięki

Ten post edytował damianooo 25.07.2012, 19:52:23
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
damianooo
post
Post #2





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


to jeszcze podpowiem cos takiego:

SELECT * FROM punkty p WHERE ( p.id_kolejka =1 ) AND ( p.id_gracz =1 ) ORDER BY p.id ASC

daje :

(punkty.id_gracz, punkty.id_mecz, punkty.id_kolejka)
1 1 1
1 2 1
1 3 1
1 4 1
1 5 1
1 6 1
1 7 1
1 8 1
1 9 1
1 10 1

SELECT * FROM mecz m WHERE (m.id_kolejka = 1) AND (m.status_m = 1) ORDER BY m.id ASC

(mecz.id, mecz.id_kolejka)
148 1
149 1
150 1
151 1
152 1
153 1
154 1
155 1
156 1
157 1

SELECT * FROM typ t WHERE (t.id_kolejka = 1) AND (t.id_gracz = 1) ORDER BY t.id ASC

(typ.id_mecz, typ.id_gracz, typ.id_kolejka)
148 1 1
149 1 1
150 1 1
151 1 1
152 1 1
153 1 1
154 1 1
155 1 1
156 1 1
157 1 1

już wiem co jest nie tak. Kolumna id_mecz w tabeli punkty nie pasują do złaczeń w pozostałymi tabelami ..

temat zamknięty ... sorry za długie wywody .. zapytanie okazuje sie prawidłowe
Go to the top of the page
+Quote Post

Posty w temacie


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: 9.10.2025 - 12:52