Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Złożone zapytanie
Wave
post
Post #1





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

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


Mój problem jest następujący:
Jak wyciągnąć wszystkie rekordy NAME dla których istnieje co najmniej X wartości POSITION mniejszych lub równych Y(n)?
X jest wartością stałą z osobnej tabeli, Y jest wartością zmienną z osobnej tabeli w relacji bezpośredniej z NAME.

Przykład:
  1. POSITION NAME
  2. 1 1
  3. 2 1
  4. 3 1
  5. 4 1
  6. 5 1
  7.  
  8. 1 2
  9. 1 2
  10. 4 2
  11. 4 2
  12. 4 2
  13.  
  14. 99 3
  15. 88 3
  16. 0 3
  17. 2 3
  18. 2 3

  1. Y NAME
  2. 4 1
  3. 3 3
  4. 10 2


Cel:
wyciągnąć NAME takie że :
  • dla NAME=1: Y=4
  • dla NAME=2: Y=3
  • dla NAME=3: Y=10
dla X = 3

Wyniki:
  • 1 (istnieją przynajmniej 3 POSITION mniejsze od 4)
  • 3 (istnieją przynajmniej 3 POSITION mniejsze od 10)


Domyślam się, że potrzeba tu jakiegoś podzapytania tylko nie umiem go skonstruować. Jakieś pomysły?

Jakieś pomysły?

Ten post edytował Wave 12.10.2010, 22:44:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Wave
post
Post #2





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

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


Proszę bardzo:
  1. --
  2. -- Struktura tabeli dla 'positions'
  3. --
  4.  
  5. CREATE TABLE positions (
  6. position int(11) NOT NULL,
  7. `name` int(11) NOT NULL,
  8. KEY `name` (`name`)
  9. );
  10.  
  11. --
  12. -- Zrzut danych tabeli 'positions'
  13. --
  14.  
  15. INSERT INTO positions (position, name) VALUES
  16. (1, 1),
  17. (2, 1),
  18. (3, 1),
  19. (4, 1),
  20. (5, 1),
  21. (1, 2),
  22. (1, 2),
  23. (4, 2),
  24. (4, 2),
  25. (4, 2),
  26. (99, 3),
  27. (88, 3),
  28. (0, 3),
  29. (2, 3),
  30. (2, 3);
  31.  
  32. -- --------------------------------------------------------
  33.  
  34. --
  35. -- Struktura tabeli dla 'rates'
  36. --
  37.  
  38. CREATE TABLE rates (
  39. `name` int(11) NOT NULL,
  40. rate int(11) NOT NULL,
  41. PRIMARY KEY (`name`)
  42. );
  43.  
  44. --
  45. -- Zrzut danych tabeli 'rates'
  46. --
  47.  
  48. INSERT INTO rates (name, rate) VALUES
  49. (1, 4),
  50. (3, 3),
  51. (2, 10);

Wyciągnąć takie `name` dla których istnieją przynajmniej np. 3 `position` mniejsze od `rate`...
Nikt nie jest w stanie nic wymyslić? (IMG:style_emoticons/default/sad.gif)

Ten post edytował Wave 27.10.2010, 18:33:54
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: 13.10.2025 - 17:02