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.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[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.pldoc.pisz.plpdf.pisz.plets2.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 |
|