Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rozwiązane [MySQL] Jak zapytać bazę?
Forum PHP.pl > Forum > Bazy danych > MySQL
SzamanGN
Witam,

Mam tabele:
gracze: id_g, punkty
schowki: id_s, gracz, nazwa

Potrzebuję listę (przykład):
"nazwa", "gracz"
góra, 1
plecak, 2
drzewo, 3

Jak mogę wylosować po jednym rekordzie "nazwa, gracz" dla każdego garcza "gracz" przy warunkach:
schowki.gracz=gracze.id_g AND gracze.punkty>0

Zrobiłem coś takiego, ale nie działa tak jak chcem:
SELECT `gracz`, `nazwa` FROM `gracze`, `schowkia` WHERE `schowki.gracz`=`gracze.id_g` AND `gracze.punkty`>0 GROUP BY `gracz` ORDER BY RAND()

Proszę o podpowiedź co robię źle.
Indeo
Piszesz strasznie niedbale - błędy ortograficzne, literówki w zapytaniu ("schowkia") źle nazwane pola w tabelach i trudny do zrozumienia opis prostego zagadnienia.
Jesli chodzi o sql to zerknij na to:
  1. SELECT S.gracz, S.nazwa FROM gracze G INNER JOIN schowki S ON G.id_g=S.gracz
  2. WHERE G.punkty>0
  3. GROUP BY S.gracz
  4. ORDER BY RAND()
SzamanGN
Oto poprawiony opis problemu:

Mam tabele:
gracze:
id_g, punkty
1, 10
2, 10
3, 10

schowki:
id_s, gracz, nazwa
1, 1, "góra"
2, 1, "dom"
3, 1, "grota"
4, 2, "plecak"
5, 2, "kieszeń"
6, 2, "jaskinia"
7, 3, "drzewo"
8, 3, "jama"
9, 3, "skrzynia"

Potrzebuję listę (przykład):
"gracz", "nazwa"
1, losowe z góra, dom lub grota
2, losowe z plecak, kieszeń lub jaskinia
3, losowe z drzewo, jama lub skrzynia

Chcem wylosować po jednym rekordzie "schowki.nazwa" dla każdego garcza "gracze.id_g" przy warunkach:
schowki.gracz=gracze.id_g AND gracze.punkty>0

Zrobiłem coś takiego:

SELECT `gracz`, `nazwa`
FROM `gracze`, `schowkia`
WHERE `schowki.gracz`=`gracze.id_g` AND `gracze.punkty`>0
GROUP BY `gracz`
ORDER BY RAND()

Pretestowałem też podpowiedź indeo:

SELECT S.gracz, S.nazwa FROM gracze G inner join schowki S on G.id_g=S.gracz
where G.punkty>0
GROUP BY S.gracz
ORDER BY RAND()

ale jest problem, bo za każdym razem pokazuje tą samą listę:
"gracz", "nazwa"
1, góra
2, plecak
3, drzewo

czyli "schowki.nazwa" to pierwsza napotkana wartość dla każdego nowego "schowki.gracz".

Tu jest rozwiązanie mojego problemu.
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.