ďťż
 
[SQL] zapytanie do 3 tabel ďťż
 
[SQL] zapytanie do 3 tabel
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[SQL] zapytanie do 3 tabel



Bartek - 13-03-2006 11:26
[SQL] zapytanie do 3 tabel
  Witam!

Nie moge sobie poradzic z nastepujacym problemem. Mam baze, a w niej
m.in takie tabele:

stories
* story_id int
* title char(200)

story_rank
* story_id int
* user_id int
* points smallint
// w bazie zostaje zapisany tekst na ktory uzytkownik glosowal, jego
identyfikator oraz liczba punktow. ma to zapobiec kilkukrotnemu glosowaniu

story_visits
* story_id int
* user_id int
// po wejsciu na strone z tekstem zapisywany jest identyfikator
uzytkownika tak aby licznik pokazywal ilosc rzeczywistych odwiedzin

Chcialbym zbudowac zapytanie (MySQL 4.1.18), ktorego rezultatem bylaby
lista z nastepujacymi polami:
1 title
2 srednia ocena tekstu przez uzytkownikow na podstawie bazy story_rank
3 liczba uzytkownikow, ktorzy weszli na strone z tekstem

O ile zebranie pol 1 i 2 (przy uzyciu AVG i GROUP BY) daje pozadane
efekty, to dodanie trzeciego pola przerasta juz moje sily. Mam nadzieje,
ze jest to wykonalne:) Z gory dzieki za pomoc!

Pozdrawiam
Bartek





Grzegorz Danowski - 13-03-2006 11:26

 
Użytkownik "Bartek" <none@none.us> napisał w wiadomości
news:441304fa$0$1460$f69f905@mamut2.aster.pl...
> Witam!
>
> Nie moge sobie poradzic z nastepujacym problemem. Mam baze, a w niej m.in
> takie tabele:
>
> stories
> * story_id int
> * title char(200)
>
> story_rank
> * story_id int
> * user_id int
> * points smallint
> // w bazie zostaje zapisany tekst na ktory uzytkownik glosowal, jego
> identyfikator oraz liczba punktow. ma to zapobiec kilkukrotnemu glosowaniu
>
> story_visits
> * story_id int
> * user_id int
> // po wejsciu na strone z tekstem zapisywany jest identyfikator
> uzytkownika tak aby licznik pokazywal ilosc rzeczywistych odwiedzin
>
>
> Chcialbym zbudowac zapytanie (MySQL 4.1.18), ktorego rezultatem bylaby
> lista z nastepujacymi polami:
> 1 title
> 2 srednia ocena tekstu przez uzytkownikow na podstawie bazy story_rank
> 3 liczba uzytkownikow, ktorzy weszli na strone z tekstem
>

Może w ten sposób:

Select
S.title
R.AvgPoints,
V.VisitCount
From
stries As S
Inner Join
(Select
story_id, Avg(Points) As AvgPoints
From
story_rank
Group By
story_id) As R
On
S.story_id = R.story_id
Inner Join
(Select
story_id, Count(*) As VisitsCount
From
story_visits) As V
On
S.story_id = V.story_id

Jeśli to nie działa w MySQL, to możesz podzapytania przenieść do osobnych
zapytań. Ewentualnie możesz spróbować z podzapytaniami skorelowanymi.

Pozdrawiam
Grzegorz




Bartek - 13-03-2006 11:26

  Dzieki Grzesiek, troche wygladzilem i dziala jak nalezy!

SELECT S.title, R.AvgPoints, V.VisitCount

FROM stories AS S

INNER JOIN
(
SELECT story_id, AVG(points) AS AvgPoints
FROM story_rank GROUP BY story_id
)
AS R USING (story_id)

INNER JOIN
(
SELECT story_id, COUNT(user_id) AS VisitCount
FROM story_visits GROUP BY story_id
)
AS V USING (story_id)

Pozdrawiam
Bartek
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?= =?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= =?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?= Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= [Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?= =?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?= [newbie] MS SQL - praca =?ISO-8859-2?Q?jednocze=B6nie_na_2_?==?ISO-8859-2?Q?bazach_=28linkowanie_=3F=29?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • melooonka.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com