|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||||||
|
Membre du Club
![]() |
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: Code :
Code :
Code :
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: Code :
Code :
Code :
Est-ce possible en SQL ? |
||||||||||||
|
00
|
|
|
#2 | ||
![]() ![]() |
Citation:
Citation:
Veux-tu 3 éléments au hasard et tous les tags associés à ces éléments ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() |
Citation:
Citation:
Donc je cherche à récupérer 3 éléments en fonction de critères (par exemple avec un WHERE e.name LIKE 'a%') ainsi que tous les tags associés. |
||
|
00
|
|
|
#4 | ||
![]() ![]() |
Tu veux dire qu'avec ton LIKE, plus de trois éléments sont susceptibles d'être retournés par la requête et tu ne veux que les trois premiers ?
Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
10
|
|
|
#5 |
|
Membre du Club
![]() |
|
|
00
|
|
|
#6 |
![]() ![]() |
Tu peux aussi faire une jointure sur la sous-requête mais en quoi la "requête" imbriquée te pose problème ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#7 |
|
Membre du Club
![]() |
Je crois que j'ai été traumatisé à une période par une personne me répétant que si on écrivait une requête imbriquée c'est que l'on pouvait mieux écrire sa requête. Mais je te confie que ton exemple de requête imbriquée colle parfaitement à mon problème en production.
Merci en tout cas de m'avoir rappelé que les sous-requêtes sont là aussi pour ce genre de nécessités Ps: Bon maintenant faut que j'arrive à mettre un LIMIT à la sous-requête .. dans doctrine héhé. |
|
00
|
|
|
#8 |
![]() ![]() |
Ne te laisse pas imposer la dictature de Doctrine. Fais lui exécuter la requête en SQL Natif. Tu perdrais ton temps pour rien à traduire cette requête dans le pseudo SQL de cette saloperie d'ORM.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#9 | |
|
Membre du Club
![]() |
Citation:
Mais c'est vrai que pour des requêtes de ce type Doctrine casse les coui**es sévère ^^ |
|
|
00
|
|
|
#10 |
![]() ![]() |
Si vous êtes limité par l'ORM, n'hésitez pas à mettre votre requête dans une vue.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#11 | |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Citation:
En effet, MySQL a longtemps été incapable de faire des sous requêtes et prétendait que toute sous requête pouvait être écrite à base de jointures. Ce qui est bien entendu totalement faux ! Lire mon cours sur SQL ou mieux, potasser mon bouquin... Voila le résultat désastreux et pervers de l'utilisation aveugle de MySQL, qui rappelons le au passage n'est ps réellement un SGBD relationnel... http://blog.developpez.com/sqlpro/p9...udre-aux-yeux/ A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
|
00
|
|
|
#12 | |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Citation:
1) vous pouvez vous en passer 2) vous développerez beaucoup plus vite ! A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
|
00
|
|
|
#13 | ||
|
Membre du Club
![]() |
Citation:
J'utilise PostgreSQL en remplacement de MySQL depuis un moment. Je vais tout de même lire votre article. Citation:
|
||
|
00
|
Copyright © 2000-2012 - www.developpez.com