Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapytanie PHP
Forum PHP.pl > Forum > Przedszkole
tomek1973
id data id_zawodnika
1 2009 1
2 2009 2
3 2009 4
4 2009 5
5 2008 1
6 2008 4
7 2007 1
8 2007 5
9 2007 3
10 2006 1
11 2006 2


Chciałbym wybrać tylko tę datę, do której przypisane jest id_zawodnika 1 i
2 , czyli 2009 i 2006.
Tylko jak napisać zapytanie?
  1. <'SELECT xxxx.data FROM xxxx WHERE id_zawodnika=1 and id_zawodnika=2 '>- to nie działa


Jak powinienem to zrobić?
Crozin
1) Co to ma wspólnego z PHP? Przecież to SQL.
2) Pomyśl jak id_zawodnika może być równocześnie równe 1 oraz 2?
tomek1973
Masz rację, rzeczywiście sql


Co do zapytania:
Trudno to wyjaśnić...
Wyobraźmy sobie, że mamy kilku zawodników (id_zawodnika), którzy grają w I lidze, przez kilka lat (data)
Chodzi nam o dwóch (id_zawodnika =1 i id_zawodnika=2) - chcę sprawdzić w jakich latach grali razem.


Z tabeli wynika, że są to lata 2009 i 2006, ale jak napisać zapytanie?


IN nie pomaga, bo jeśli napiszę IN ("1", "2") to wybierze mi wszystkie lata, gdzie 1 i 2 byli sami, chodzi mi o lata "wspólne"

questionmark.gifquestionmark.gif
tvister
Uwaga freestyle więc może nie działać ale może naprowadzić na właściwy trop.
Zapytanie powinno wybrać wszystkie wspólne daty.
  1. SELECT t1.datta FROM t t1, t t2 WHERE t1.datta = t2.datta AND t2.id = 1 AND t1.id = 2


ps. id to id_zawodnika
tomek1973
Nie za bardzo wiem jak popodstawiać...

Jeżeli wszystkie dane mam w jednaj tabeli (t1) to co podstawiam pod t2
Co podstawić pod t?
tvister
To samo smile.gif
t to jest twoje xxxx.
Więc będzie to wyglądało : from xxxx t1, xxxx t2
Taka magiczna sztuczka :-p
tomek1973
Dzięki bardzo,

Rzeczywiście działa.
Mógłbyś jeszcze napisać jak to działa, ewentualnie gdzie o tym poczytać?


Dodatkowo urodził mi się jeszcze jeden problem.

A mianowicie do każdej daty, każdy zawodnik ma dopisany wynik punktowy (kolumna pkt)

Chciałem aby zapytanie wyliczyło ile razy pkt zawodnika 1 są lepsze od pkt zawodnika 2.

Myślałem, żeby skorzystać z funkcji COUNT.

Jednak na chwilę obecną przerasta to moje możliwości.

Tak wygląda mój kod:

  1. $result1 = mysql_query(' SELECT t1.data FROM zawody_x t1, zawody_x t2 WHERE t1.data = t2.data AND t2.id_zawodnika = 1 AND t1.id_zawodnika = 2 ORDER BY data')
tvister
Skorzystaj z funkcji sum : coś takiego sum(t1.pkt) / sum(t2.pki) i dodaj grupowanie bo pewnie krzyknie mysql.
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.