ugrás a tartalomhoz

mysql select több táblából az összes felhasználó utolsó bejegyzése

Laci_67 · 2016. Jan. 6. (Sze), 20.00
Segítséget szeretnék kérni egy olyan lekérdezéshez ami 2 táblából adódik össze,az egyik a felhasználók adatait tartalmazza a másik a felhasználók bejegyzéseit.
egy olyan mysql keresésre volna szükségem ami megjeleniti egy tömbbben az összes felhasználó időrendben leg frissebb bejegyzését.
A segítségeteket előre is köszönöm.
  1. $keres = "SELECT * FROM bejegyzesek LEFT JOIN felhasznalok ON felhasz_id = bejegyz_id WHERE felhasz_hely='budapest' ORDER BY bejegyz_date desc LIMIT 1";  
valami ilyesmi csak úgy hogy az összes felhasználó utolsó bejegyzését adja vissza
 
1

Valami ilyesmi? SELECT * FROM

kuka · 2016. Jan. 6. (Sze), 20.40
Valami ilyesmi?
  1. SELECT *  
  2. FROM felhasznalok f  
  3. JOIN bejegyzesek b USING (felhasz_id)  
  4. JOIN (  
  5.     SELECT felhasz_id, max(bejegyz_date) bejegyz_date  
  6.     FROM bejegyzesek b  
  7.     GROUP BY felhasz_id  
  8. ) u ON u.felhasz_id = b.felhasz_id AND u.bejegyz_date = b.bejegyz_date  
  9. WHERE f.felhasz_hely = 'budapest'  
  10. ORDER BY b.bejegyz_date  
Sajnos MySQL-ben nincsenek windowing function-ok, úgyhogy kicsit gányolás szagú a megoldás. A fenti működéséhaz szükséges, hogy bejegyzesek.bejegyz_date egyedi legyen. Szerencsésebb volna ha bejegyzesek.bejegyz_id párhuzamosan növekedne a dátummal, mert akkor a fenti lekérdezésben bejegyz_date lecserélhető bejegyz_id-re (amiről feltételezem, hogy egyedi).
2

Köszönöm megpróbálom a

Laci_67 · 2016. Jan. 6. (Sze), 21.06
Köszönöm megpróbálom a dolgot.
Eddig olyan megoldást használtam,hogy lekérdeztem a felhasználókat és mikor ez megvolt
mindegyikhez csináltam egy lekérdezést az utolsó bejegyzéshez,ez is gányolás szagú volt csak valami jobb képű megoldáshoz nem elég a jelenlegi mysql tudásom.
  1. $keres = "SELECT * FROM felhasznalok WHERE felhasz_hely = 'budapest' ORDER BY felhasz_id";  
  2. $talalat = mysql_query($keres,$dbc);  
  3. while($row_felh = mysql_fetch_array($talalat))  
  4. {  
  5. $keresbej = "SELECT * FROM bejegyzesek WHERE bejegyz_id = '$row_felh["felhasz_id"]'  ORDER BY bejegyz_date DESC LIMIT 1";  
  6. $talalatbej = mysql_query($keresbej,$dbc);  
  7. $row_bej = mysql_fetch_array($talalatbej);  
  8. }