Combinez deux requêtes SQL select (dans postgres) avec L'instruction LIMIT
J'ai une table et je veux une requête qui renvoie les 10 derniers enregistrements créés plus l'enregistrement dont l'id est X.
J'essaie de faire -
SELECT * FROM catalog_productimage
ORDER BY date_modified
LIMIT 10
UNION
SELECT * FROM catalog_productimage
WHERE id=5;
Mais il ne semble pas que je puisse mettre LIMIT
là-dedans avant UNION
. J'ai essayé d'ajouter une autre colonne et de l'utiliser pour le tri -
SELECT id, date_modified, IF(false, 1, 0) as priority FROM catalog_productimage
UNION
SELECT, id, date_modified, IF(true, 1, 0) as priority FROM catalog_productimage
WHERE id=5
ORDER BY priority, date_modified
LIMIT 10;
Mais je ne fais pas beaucoup de progrès..
22
demandé sur
Aidan Ewen
2012-11-27 16:20:22
2 réponses
Juste vérifié que cela fonctionnera:
(SELECT * FROM catalog_productimage
ORDER BY date_modified
LIMIT 10)
UNION
SELECT * FROM catalog_productimage
WHERE id=5;
40
répondu
sufleR
2012-11-27 12:28:39
Cela vous donnera des enregistrements de 10th à 20th et devrait vous aider à démarrer.je répondrai avec SQLfiddle
SELECT *
FROM (SELECT ROW_NUMBER () OVER (ORDER BY cat_id) cat_row_no, a.* FROM catalog_productimage a where x=5)
WHERE cat_row_no > 10 and cat_row_no <20
1
répondu
sayannayas
2012-11-27 12:26:40