Bonjour,
Je développe dans le web depuis plusieurs année et me sert du langage SQL régulièrement. J'ai cependant très souvent utilisé les SGBDR de manière simple sans vraiment optimiser au mieux mes requêtes. Celà a cause de mon manque de connaissance dans l'usage avancé des SGBDR.
Aujourd'hui j'aimerais me débloquer sur la notion que je vais présenter ci-dessous.
Contexte: Trois table:
Lorsque j'effectue cette requête,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 element: [id, name] elements_tag: [id, element_id, tag_id] tag: [id, name]
disons que mon retour est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT e.id AS eid, e.name AS ename, t.name AS tname FROM element e LEFT JOIN elements_tag et ON e.id = et.element_id LEFT JOIN tag t ON t.id = et.tag_id
J'ai bien mes éléments et les tags qui y sont associés. Avec ça je peux hydrater mes objets dans mon programmes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 eid ename tname 1 voiture deplacer 1 voiture moteur 2 velo deplacer 3 porte ouvrir 3 porte bois 4 bureau poser 4 bureau bois
Ma question désormais est comment puis-je limiter ma requête a un certains nombre d’éléments et non a un certains nombre de résultats.
Si je rajoute une LIMIT a ma requête:
Je limite mon nombre de résultats:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT e.id AS eid, e.name AS ename, t.name AS tname FROM element e LEFT JOIN elements_tag et ON e.id = et.element_id LEFT JOIN tag t ON t.id = et.tag_id LIMIT 3
Or mon souhait est de limiter le nombre "d'élément" pour qu'en quelque sorte le résultats ressemble à:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 eid ename tname 1 voiture deplacer 1 voiture moteur 2 velo deplacer
(3 e.id différents)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 eid ename tname 1 voiture deplacer 1 voiture moteur 2 velo deplacer 3 porte ouvrir 3 porte bois
Est-ce possible en SQL ?









Répondre avec citation




Partager