2016-10-23 5 views
0

Wie kann ich Zeilen aus der Bilder Tabelle mit inneren Join auswählen und mit Limit SQL beginnen? Ich habe folgendes versucht. Ich möchte begrenzte Bilder aus der Bildtabelle auswählen.Wählen Sie mit innerem Join, Start und Limit SQL

SELECT * 
FROM images 
JOIN users ON images.users_user_id = users.user_id 
LIMIT 3,5 
ORDER BY image_created DESC 
+0

http://dev.mysql.com/doc/refman/5.7/en/select.html –

Antwort

1

Ok Ich habe es zur Arbeit gebracht.

SELECT images.image_id, images.image_url, users.user_name 
    FROM (SELECT * FROM images LIMIT 0, 6) images 
    INNER JOIN users 
    ON images.users_user_id = users.user_id 
ORDER BY image_created DESC 
+0

Ich glaube nicht, dass es einen Grund für eine Unterabfrage gibt. –

0

Ich erkenne START nicht. OFFSET ist das Schlüsselwort, das verwendet werden soll:

SELECT * 
FROM images i INNER JOIN 
    users u 
    ON i.users_user_id = u.user_id 
ORDER BY i.image_created DESC 
LIMIT 5 OFFSET 3; 

Beachten Sie, dass ich auch Tabellenaliasse der Abfrage hinzugefügt. Ich würde (in der Regel) empfehlen, nicht select * über Tabellen zu verwenden, sondern die Spalten auszuwählen, die Sie wirklich benötigen.

+0

Kann 'OFFSET/LIMIT' vor' ORDER BY' verwendet werden? –

+0

Ich bekomme Syntaxfehler mit diesem Beispiel. –

+0

Gemäß [Dokumentation] (http://dev.mysql.com/doc/refman/5.7/en/select.html) lautet die korrekte Syntax 'ORDER BY ... LIMIT 5 OFFSET 3'. Wenn Sie von der dritten Zeile aus starten möchten, müssen Sie 'OFFSET 2' verwenden (überspringen Sie die ersten 2 Zeilen). –