Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL 4.*] Bardziej zaawansowane pytanie
Spirit86
post
Post #1





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


Witam, mam 2 tabelę :
1) xn_users
2) xn_ranks

Teraz chcę otrzymać takie coś:

Wybierz (POLA) z tabel xn_users, xn_ranks, takie, że xn_ranks.
->pole xn_user.id równe jest 5
ORAZ
->Jeżeli xn_users.rank_id>0 Pobierz xn_ranks.id=xn_users.rank_id
W Przeciwnym Razie pobierz taką wartość, że rank_min>xn_users.points (pierwsza wartość, która jest większa równa od wymaganej ilości punktów)

Napisałem pytanie do bazy:

  1. SELECT nick, level, sign, from_, sex, avatar, gg, www, points, xn_ranks.rank_name
  2. FROM `xn_users`, `xn_ranks`
  3.  
  4. WHERE xn_users.id='5' AND (
  5. IF(xn_users.rank_id>0 ){
  6. xn_ranks.id = xn_users.rank_id
  7. }
  8. ELSE{
  9. xn_ranks.rank_min>xn_users.points
  10. }
  11. ) LIMIT 1


Niestety, jak się domyślacie nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) .
Pozdrawiam

Ten post edytował Spirit86 7.11.2005, 19:01:34
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Spirit86
post
Post #2





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


ech, zauważyłem, że jeśli uzytkownik ma 0 punktów, wtedy Zwraza wiele rekordów.
ykonanie zapytania trwało 0.0190 sekund

Dzięki za wytłumaczenie zasady działania Union. Wiesz, zastanawiam się, czy nie dało by się użyć czegoś a'la Switch w php. Tzn., coś podobnego do:

  1. SELECT nick, level, sign, from_, sex, avatar, gg, www, points, xn_ranks.rank_name
  2. FROM `xn_users`, `xn_ranks`
  3. WHERE xn_users.id='5' AND (SWITCH(xn_users.rank_id) {
  4. case >0:
  5. xn_ranks.id = xn_users.rank_id
  6. DEFAULT:
  7. xn_users.points >=`rank_min`
  8. }

tylko nie mogę doszukać się w manualu switcha, ech kiepsko z tym moim angielskim
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: 3.10.2025 - 03:19