Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Zapytanie trudne do opisania
Forum PHP.pl > Forum > Przedszkole
bmL
Witam, mam mały problem z zapytaniem. Chciałbym to wykonać w jednym zapytaniu, myślę że jest to możliwe ale nie mogę wpaść na pomysł jak skonstruować takie zapytanie musiał bym chyba od deski do deski przestudiować cały manual smile.gif Mam problem z negacją, może ktoś jest mi w stanie pomóc.

tabela users:
value : INT
userID : INT

tabela user_bets:
uUserID : INT
uBetID : INT

tabela bets:
betID : INT
betStatus : INT

Ciężko to opisać to napiszę w 3 zapytaniach i chciałbym wiedzieć czy istnieje możliwośc połączenia tego w jedno zapytanie:
  1. $under50 = mysql_query("SELECT userID AS uID FROM users WHERE value < 2");
  2.  
  3. while(@extract(mysql_fetch_array($under50, MYSQL_ASSOC)))
  4. {
  5. if(!mysql_num_rows(mysql_query("SELECT betID FROM bets, user_bets WHERE uUserID = '$uID' AND uBetID = betID AND betStatus <3 ")))
  6. {
  7. mysql_query("UPDATE user SET zl = 50 WHERE userID = '$uID'");
  8. }
  9. }


Z góry dzięki za pomoc smile.gif
skowron-line
  1. SELECT users.userID, betID
  2. FROM users, user_bets, bets
  3. WHERE users.userID = user_bets.uUserID
  4. AND users.value < 2
  5. AND bets.betStatus < 3

i pozniej update

lub odrazu
  1. UPDATE user SET zl = 50 WHERE userID IN ( ... )

zamiast 3 kropek zapytanie select
bmL
  1. UPDATE user SET zl = 50 WHERE userID NOT IN (SELECT userID FROM bets_user, user, bets
  2. WHERE uBetUserID = userID
  3. AND zl < 2
  4. AND betStatus < 3)

Zamiast IN dałem NOT IN bo chodzi o to że ma nie występować ale tak czy siak wypluwa błąd:
Kod
You can't specify target table 'user' for update in FROM clause


Puki co kombinuję winksmiley.jpg

Przeanalizowałem i ogólnie źle zinterpretowałeś moją ideę bo takie zapytanie gdyby działało to zakłada że aktualizacja ma nastąpić we wszystkich rekordach dla których występuje betStatus < 3 a ma być odwrotnie mają nie występować rekordy z bestatus < 3;
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.