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 :
SELECT a.id, a.name FROM a ORDER BY a.id LIMIT 0, 10
|
Et pour ces 10 éléments, tu veux les éléments de b :
Code :
SELECT dixa.name, b.name, c.value FROM ( SELECT a.id, a.name FROM a ORDER BY a.name LIMIT 0, 10 ) dixa INNER JOIN c ON c.id_table_a = dixa.id INNER JOIN b ON b.id = c.id_table_b ORDER BY dixa.name, b.name
|
En espérant que MySQL accepte de faire un LIMIT dans une sous-requête.
Message édité par MagicBuzz le 22-08-2007 à 16:33:16