sql >> Base de Datos >  >> RDS >> PostgreSQL

SQL:controlar cuántos registros se devuelven

Ahí lo tienes (no probado):

SELECT movie.id, movie.title, star.name, star.name_url, dir.name, 
       dir.name_url, genre.name, genre.name_url 
FROM 
        (SELECT * FROM movie WHERE movie.id > 0 ORDER BY movie.id LIMIT 10) movie
        LEFT JOIN actor 
             ON (movie.id = actor.movie_id) 
        LEFT JOIN person AS star 
             ON (actor.person_id = star.id) 
        LEFT JOIN director 
             ON (movie.id = director.movie_id) 
        LEFT JOIN person AS dir 
             ON (director.person_id = dir.id) 
        LEFT JOIN genre_classification 
             ON (movie.id = genre_classification.movie_id) 
        LEFT JOIN genre 
             ON (genre_classification.genre_id = genre.id)

Editar:al poner todas sus condiciones en la subselección, no puede controlar qué datos de la tabla de origen movie se utilizará para JOIN. En cuanto al rendimiento, esto también debería ser mucho más rápido.