Jointure et "LIMIT" - PHP - Programmation
Marsh Posté le 21-12-2005 à 13:57:47
will75012 a écrit : J'ai une requête mysql avec jointure sur 3 tables :
|
C'est que ta jointure n'est pas bonne , là il te fait un produit cartesien (ortho).
Retire ton limit tu verras que logiquement il t'envera la même chose mais avec plus de resultat. Le probleme se trouve au niveau de ta jointe.
Marsh Posté le 21-12-2005 à 14:38:26
Je sais que si j'enlève mon LIMIT il me retourne plus de résultats hors moi je veux 10 DVD comment faire? Si il y avait toujour 5 acteurs par DVD pas de problème je met le LIMIT à 50 et il me donne donc 10 DVD différents mais là se n'est pas possible comme des fois il y a qu'un acteurs (ou même pas dutout) et d'autre fois y en a une dizaine !
Marsh Posté le 21-12-2005 à 14:43:03
Voila à quoi ressemble mes tables :
Code :
|
Code :
|
Code :
|
Marsh Posté le 21-12-2005 à 15:36:51
Quelle version de MySQL ?
Essaie en remplacant "FROM dvd_catalogue" par :
FROM (SELECT * FROM dvd_catalogue ORDER BY titre LIMIT 10) AS dvd_catalogue
Il faudra peut être utiliser un autre nom pour renommer.
Marsh Posté le 21-12-2005 à 15:43:42
will75012 a écrit : J'ai une requête mysql avec jointure sur 3 tables : |
C'est normal qu'il te retourne ce resultat. Il retourne pour chaque film la liste des acteurs associée. Il contruit donc un ensemble de resultat et ne retourne que les 10 premieres paires.
Pour avoir la liste des 10 premiers films, ca risque d'etre plus compliqué. Quelque chose du genre.
Code :
|
Là, la sous-requete definie la liste des id de films que tu veux prendre. Et le select retourne les acteurs.
Mais, certains diront que l'on peut le faire sans sous-requete.
Marsh Posté le 21-12-2005 à 15:44:45
mrbebert a écrit : Quelle version de MySQL ? |
Tiens on peut faire ca avec MySql?
Marsh Posté le 21-12-2005 à 16:14:02
A partir du 5 oui Quoi que il me semble qu'avec le 4. aussi mais je me rappelle plus
Marsh Posté le 21-12-2005 à 18:10:58
c'est bon à savoir. Je vais devoir faire evoluer ma version une jour ou l'autrE.
Marsh Posté le 21-12-2005 à 21:33:11
ReplyMarsh Posté le 21-12-2005 à 21:55:29
will75012 a écrit : J'ai la version 3.23.49 |
Perso j'aurais desinstallé eaysphp et reinstallé la dernier version. Normalement il concerve le repertoire /mysql/data et www/ mais par securité il faut sauvegarder ces deux repertoire. ce que je te dis c'est la methode la plus simple mais sinon je t'aurais conseillé de l'installer séparément.
php, apache, mysql ainsi c'est plus facile à administrer les mise à jours.
Marsh Posté le 22-12-2005 à 16:49:52
j'ai peut-être pas compris ce que tu voulais au final, mais si tu ne veux que les films, un simple "select titre from dvd_catalogue limit 10" n'irait pas?
Marsh Posté le 22-12-2005 à 17:02:04
C'est les 10 premiers films. Et pour chaque film la liste des acteurs.
Marsh Posté le 22-12-2005 à 17:21:15
Berceker United a écrit : Perso j'aurais desinstallé eaysphp et reinstallé la dernier version. Normalement il concerve le repertoire /mysql/data et www/ mais par securité il faut sauvegarder ces deux repertoire. ce que je te dis c'est la methode la plus simple mais sinon je t'aurais conseillé de l'installer séparément. |
J'ai la dernière version (la 1.8) et avec il y a la version 3.23.49 de mysql
Marsh Posté le 23-12-2005 à 09:39:53
ha bon? Tien cela m'étonne. Alors je pense que tu peux quand même désinstaller mysql via le service windows et de le reinstaller de façon autonome.
Marsh Posté le 21-12-2005 à 12:54:48
J'ai une requête mysql avec jointure sur 3 tables :
La table DVD et la table Acteurs et la table de relaction entre les DVD et les acteurs.
Un DVD peu biensur avoir plusieur acteurs...
Quand je met un LIMIT pour avoir seulement les 10 premiers résultats il me retourne :
...Comme elle respire > Marie Trintignant
...Comme elle respire > Guillaume Depardieu
...Comme elle respire > Jean-françois Stévenin
...Comme elle respire > Serge Riaboukine
...Comme elle respire > Blanchette Brunoy
...Comme elle respire > Michèle Moretti
1 Chance sur 2 > Jean-paul Belmondo
1 Chance sur 2 > Alain Delon
1 Chance sur 2 > Vanessa Paradis
1 Chance sur 2 > Eric Defosse
Hors moi je veux les 10 premier films et non pas les 10 premières paires !
Voici ma requête :
Comment faire?
Message édité par will75012 le 21-12-2005 à 12:56:16