J'ai deux tables dans Postgres. Je veux obtenir les dernières données 3records de la table.impossible d'utiliser LIMIT lors de l'utilisation de la requête corrélée
est inférieure à la requête:
select two.sid as sid,
two.sidname as sidname,
two.myPercent as mypercent,
two.saccur as saccur,
one.totalSid as totalSid
from table1 one,table2 two
where one.sid = two.sid;
La requête ci-dessus affiche tous les enregistrements vérification de l'état one.sid = two.sid, je veux que les données récentes 3 fiches (4,5,6) de Tableau 2.
Je sais dans Postgres que nous pouvons utiliser limit
pour limiter les lignes à récupérer, mais ici dans la table 2 pour chaque ID j'ai plusieurs lignes. Donc je suppose que je ne peux pas utiliser la limite sur table2 mais que je devrais utiliser sur table1. Aucune suggestion?
table1:
sid totalSid
1 10
2 20
3 30
4 40
5 50
6 60
table2:
sid sidname myPercent saccur
1 aaaa 11 11t
1 bbb 13 13g
1 ccc 11 11g
1 qw 88 88k
//more data for 2,3,4,5....
6 xyz 89 895W
6 xyz1 90 90k
6 xyz2 91 91p
6 xyz3 92 92q
Rechercher l'utilisation de 'cross apply' avec votre limite au lieu d'une 'cross join' ou d'un', 'joindre je pense que posgresql appelle cela une jointure latérale. https://stackoverflow.com/questions/11472790/postgres-analogue-to-cross-apply-in-sql-server Comment identifiez-vous "Recent?" – xQbert
Ou utilisez une fonction de fenêtre, telle que row_number(). – wildplasser
Donc, je ne peux pas utiliser LIMIT pour le scénario mentionné ci-dessus? – user7833845