SELECT avec LEFT JOIN et LIMIT [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 06-08-2007 à 20:26:02
oui j'avais oublié le "order by" dans la requête, c'est rajouté, mais ça ne change rien au résultat.
Marsh Posté le 06-08-2007 à 20:32:31
ca marche avec un "group by a.id" mais du coup je n'ai qu'une ligne pour chaque résultat et donc pas toutes les valeurs de c.value voulues.
Marsh Posté le 06-08-2007 à 21:03:07
order by c.id_table_a
Marsh Posté le 20-08-2007 à 17:20:05
Essaye :
Code :
|
Si c'est comme sous oracle avec le rownum, ca devrait marcher ..
Marsh Posté le 22-08-2007 à 15:31:24
j'ai essayé çà
Code :
|
toujours le même résultat: les 10 premières lignes et non les 10 premières valeurs de a avec celles de c correspondantes...
Marsh Posté le 22-08-2007 à 16:31:45
Je viens de relire ton énoncé, et en fait, déjà, t'es mal parti...
Si j'ai bien compris, mettons que tu as en moyenne N éléments b pour chaque élément a, alors c'est pas 10 lignes que tu veux, mais l'ensemble des lignes pour les 10 premiers éléments a, c'est bien ça ?
Donc 10 x N lignes en gros...
Donc d'entrée de jeu, ton LIMIT ne peut pas porter sur le résultat final !
Dans ces cas là, on cherche pas midi à 14 heures, on y va pas à pas :
Les 10 premiers éléments de A :
Code :
|
Et pour ces 10 éléments, tu veux les éléments de b :
Code :
|
En espérant que MySQL accepte de faire un LIMIT dans une sous-requête.
Marsh Posté le 22-08-2007 à 16:48:48
OMG ca marche, merci toi!!
j'avais déjà essayé ça:
Code :
|
mais le "LIMIT" dans la sous requête ne passait pas, j'avais donc laissé tomber cette piste.
Un grand merci encore
Marsh Posté le 22-08-2007 à 16:55:40
Y'avait de l'idée dans ton truc.
A mon avis, ça marchait, y'a juste qu'il n'y a pas de order by dans ton sous-select, ce qui fait que le limit se fait "à la vas-y comme je te pousse", donc t'as 10 lignes, mais pas forcément les 10 premières (enfin... pour lui, si, mais pas pour toi )
(bon, pis y'avait un peu un tmp.id à remplacer par un a.id surtout !)
Marsh Posté le 06-08-2007 à 19:27:25
Bonjour, j'ai un petit problème de requête et j'ai beau me triturer la tête je ne trouve pas la solution.
pour faire simple j'ai deux tables:
j'aimerai récupérer les 10 premiers éléments de la table A avec les infos de la table B (en sachant que la relation A-B est n-aire):
Avec cette requête je récupère les 10 premières lignes mais pas nécessairement les 10 premiers éléments de la table A.
Qu'est-ce que je dois modifier/ajouter?
Message édité par goldorak69 le 06-08-2007 à 20:26:20