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.

$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?

SELECT *
FROM felhasznalok f
JOIN bejegyzesek b USING (felhasz_id)
JOIN (
    SELECT felhasz_id, max(bejegyz_date) bejegyz_date
    FROM bejegyzesek b
    GROUP BY felhasz_id
) u ON u.felhasz_id = b.felhasz_id AND u.bejegyz_date = b.bejegyz_date
WHERE f.felhasz_hely = 'budapest'
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.

$keres = "SELECT * FROM felhasznalok WHERE felhasz_hely = 'budapest' ORDER BY felhasz_id";
$talalat = mysql_query($keres,$dbc);
while($row_felh = mysql_fetch_array($talalat))
{
$keresbej = "SELECT * FROM bejegyzesek WHERE bejegyz_id = '$row_felh["felhasz_id"]'  ORDER BY bejegyz_date DESC LIMIT 1";
$talalatbej = mysql_query($keresbej,$dbc);
$row_bej = mysql_fetch_array($talalatbej);
}