MySQL LIMIT umdrehen

Das muss aber auch dann uid oder cid heißen und nicht einfach nur id!
So wie ers hat stimmts schon. Der JOIN ist in der Unterabfrage, also for den Aliasen

Wenn man die SQLs sauber formatiert, dann sieht man solches Zeug einfach besser - aber damit steh ich noch auf weiter Flur alleine da
SQL:
SELECT 
	* 
FROM 
	(
		SELECT 
			c.id AS cid, 
			c.user_id, 
			c.content, 
			u.id AS uid, 
			u.name 
		FROM 
			chat c 
			INNER JOIN user u 
				ON c.user_id = u.id 
		ORDER BY 
			c.id DESC 
		LIMIT 50
	) AS selected_data  -- Original: cid   -- Das ist eher suboptimal, eine Unterabfrage gleich zu nennen wie ein Feld. vor allem, da cid nix über den Inhalt der Unterabfrage aussagt
ORDER BY
	cid ASC
 
Zuletzt bearbeitet von einem Moderator:
Ist nur nicht so schön wenn ein einziger Query 20 Zeilen Code einnimmt,
deswegen schreib ich es nicht so sauber wie das beispiel von dir.
 
an jannicars: Du kannst deinen Query gerne so schreiben wie es dir beliebt, allerdings erwarte dann nicht von irgendjemanden anderen, dass er sich den dann ansieht, geschweige denn davon, dass er ihn versteht. Wenn der Query nunmal zwanzig Zeilen lang ist, dann ist er eben zwanzig Zeilen lang. Und so formatiert, sieht man direkt, was der Query bewirkt und was man als Ergebnis erwarten kann.
 
Ok, ok.
Dann wenn ich mal ein query poste, werde ich ihn eben formatieren,
Nicht aber für meinen code.

Oder erhöht das nicht grade die usuability, wenn man weiß,
Wo der quert anfängt und aufhört?
 
Warum sollte man bei einem formatierten SQL nicht wissen, wo es beginnt und wo es endet?
Grad wenn du den SQL-String mittels Heredoc schreibst, ist der sehr gut lesbar im Code

PHP:
$maxRows = 50;
$sql=<<<SQL
SELECT 
    * 
FROM 
    (
        SELECT 
            c.id AS cid, 
            c.user_id, 
            c.content, 
            u.id AS uid, 
            u.name 
        FROM 
            chat c 
            INNER JOIN USER u 
                ON c.user_id = u.id 
        ORDER BY 
            c.id DESC 
        LIMIT {$maxRows}
    ) AS selected_data
ORDER BY
    cid ASC
SQL;

$result = mysql_query($sql);
while($row = mysql_fetch_array($result){
    //TODO: Zeile Ausgeben
}
 
Zurück