ďťż
 
Mysql zapytanie do 3 tabel ďťż
 
Mysql 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

Mysql zapytanie do 3 tabel



m0d - 08-02-2006 17:23
Mysql zapytanie do 3 tabel
  Witam,

Mam 3 tabele:

rozmowy_tematy:
id | temat | zalozono | odpowiedzialny |

users:
id | imie | nazwisko

rozmowy
id | temat (id tematu z rozmowy_tematy) | wpisal (id z users) | tresc

Chce wyciagnac wszystkie dane z [rozmowy_tematy]
imie nazwisko odpowiedzialnego z [users]
oraz chce sprawdzic wartosc kolumny [wpisal] w tabeli [rozmowy] gdzie
rozmowy.id przypisane do danego rozmowy_tematy.id jest MAX

Moje zapytanie wyciaga wszystkie potrzebne informacje ale nie umiem
wykorzystac wyciagnietego max(r.id) aby r.wpisal bylo wlasnie z tego id

Bede wdzieczny za pomoc

SELECT t.id, t.temat, t.zalozono, t.odpowiedzialny, u.imie, u.nazwisko,
r.wpisal, max( r.id )
FROM rozmowy_tematy AS t, users AS u, rozmowy AS r
LEFT JOIN rozmowy ON t.id = r.temat
RIGHT JOIN users ON t.odpowiedzialny = users.id
WHERE r.temat = t.id
GROUP BY t.id

Pozdrawiam
Grzesiek





m0d - 08-02-2006 17:23

  > SELECT t.id, t.temat, t.zalozono, t.odpowiedzialny, u.imie, u.nazwisko,
> r.wpisal, max( r.id )
> FROM rozmowy_tematy AS t, users AS u, rozmowy AS r
> LEFT JOIN rozmowy ON t.id = r.temat
> RIGHT JOIN users ON t.odpowiedzialny = users.id
> WHERE r.temat = t.id
> GROUP BY t.id

dolozylem HAVING ale nie rozumiem tego zachowania

SELECT t.id, t.temat, t.zalozono, t.odpowiedzialny, u.imie, u.nazwisko,
r.wpisal,r.id, max( r.id ) AS maxim
FROM rozmowy_tematy AS t, users AS u, rozmowy AS r
LEFT JOIN rozmowy ON t.id = r.temat
RIGHT JOIN users ON t.odpowiedzialny = users.id
WHERE r.temat = t.id
GROUP BY t.id having r.id=maxim

teoretycznie zwraca to co chce ale tylko te rekordy ktore maja tylko 1 wpis
w danym temacie :(

Grzesiek




m0d - 08-02-2006 17:23

  > teoretycznie zwraca to co chce ale tylko te rekordy ktore maja tylko 1
> wpis w danym temacie :(

chyba mi sie udalo :)

SELECT t.id, t.temat, t.zalozono, t.odpowiedzialny, u.imie, u.nazwisko,
r.wpisal, r.id
FROM rozmowy_tematy AS t, users AS u, rozmowy AS r
LEFT JOIN rozmowy ON t.id = r.temat
RIGHT JOIN users ON t.odpowiedzialny = users.id
WHERE r.temat = t.id
AND r.id = (
SELECT max( rozmowy.id )
FROM rozmowy
WHERE rozmowy.temat = t.id )
GROUP BY t.id

Grzesiek




szaman - 10-02-2006 12:12

 
To się nazywa autoservice czy lepiej selfresponding ;-)
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?= [MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?= [mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?= [MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?= [MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?= Gdzie MySQL 4.1, a gdzie 5.0? [MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?= [MS SQL] "set names" (mySQL) w MS SQL MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?= [MySQL] Czy da =?ISO-8859-2?Q?si=EA_wykonac_takie_powi=B1z?==?ISO-8859-2?Q?anie_mi=EAdzy_tabelami=2C_i_jak_to_odpyta=E6_? ==?ISO-8859-2?Q?=3F?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • ets2.xlx.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