• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Optymalizacja zapytania SQL

0 głosów
485 wizyt
pytanie zadane 25 maja 2017 w SQL, bazy danych przez Q_Nick Mądrala (5,010 p.)

Potrzebne mi zapytanie do bazy danych które wykonuje mniej więcej coś takiego:

user_money=user_money+rank_wage*set_distance.

Dla ułatwienia dodaje screen bazy danych z zależnościami:

Posiadam zapytanie, które działa, ale wydaje mi się, że nie jest ono optymalne.

UPDATE users SET user_money=(SELECT rank_wage FROM ranks WHERE rank_id=(SELECT user_rank FROM users WHERE user_id=(SELECT set_user FROM settlements WHERE set_id='$id')))*(SELECT set_distance FROM settlements WHERE set_id='$id')+user_money WHERE user_id=(SELECT set_user FROM settlements WHERE set_id='$id')

PS: baza jest na serwerze mysql, jest tylko połączona z libreoffice

komentarz 25 maja 2017 przez Chess Szeryf (76,730 p.)

Masz relację jeden do wielu.

https://stackoverflow.com/questions/19278564/how-to-join-two-tables-with-one-to-many-relationship

Chyba możesz to połączyć jakimś join'em.

 

1 odpowiedź

0 głosów
odpowiedź 25 maja 2017 przez jeremus Maniak (59,720 p.)
-- spróbuj czegoś takiego 
UPDATE users ,rangs, settlements SET user_money=user_money+rank_wage*set_distance  WHERE rank_id=user_rank  and user_id=set_user  and  set_id='$id'  

 

Podobne pytania

0 głosów
1 odpowiedź 1,823 wizyt
+1 głos
1 odpowiedź 474 wizyt
pytanie zadane 13 września 2017 w SQL, bazy danych przez arek01996 Stary wyjadacz (12,080 p.)
0 głosów
1 odpowiedź 689 wizyt
pytanie zadane 10 maja 2022 w SQL, bazy danych przez alpha.netrunner Mądrala (5,030 p.)

93,608 zapytań

142,532 odpowiedzi

323,004 komentarzy

63,101 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...