Bonjour à tous,
je tourne en rond pour trouver un resultat , y a rien qui marche...
Je cherche à obtenir toutes les occurences d'une requete qui utilise un group by .
La sous requete avec le group by me ramene 1 seule occurence n fois.
or je veux toutes les occurences.
J'ai essayé de faire in ou any (select .... group by ...) mais ça n'a pas de fin
pas d'erreur mais le resultat n'arrive jamais...
Je vous donne un exemple :
table_auteur innodb : nom_auteur, prenom auteur, id_auteur
table_livre innodb : id_livre, texte_du_livre, titre, id_auteur (Foreign key)
J'ai 17.000 textes de livre en plusieurs exemplaires dans une table de 500 000 references de livres.
1ier requete :
là , j'obtiens 17000 lignes avec l'identite d'un seul des livres à chaque fois :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Select count(*) , id_livre , titre INTO OUTFILE "liste_des_entrees_multiples.txt" from table_livre group by substring(texte_du_livre, 1) having count(*) >1;
2 tintin id526665
5 biloute id599986
3 trucmuche id2649758
...
si je fais
2ieme requete:
là j'obtiens les 2 livres identiques
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 select table_auteur.nom_auteur, table_auteur.id_auteur , table_livre.titre from table_auteur inner join table_livre on table_livre.id_auteur = table_auteur.id_auteur where texte_du_livre = ( select text_du_livre from table_livre where id_livre = id526665 );
herge id526665 tintin
herger id526665 tintin
Mais je voudrais que ça m'affiche ça à la premiere requete.
J'ai essayé avec IN.
Je n'ai pas de message d'erreur mais aucun resultat ne s'affiche meme en laissant tourner 3jours... et meme en faisant un "limit 2 ";
Si on met les valeurs à la place du select ...
ça passe mais dès qu'il y a le select , il n'y a plus de resultat.
3ieme requete :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 select table_auteur.nom_auteur, table_auteur.id_auteur , table_livre.titre into outfile "liste_des_entrees_multiples.txt" from table_auteur inner join table_livre on table_livre.id_auteur = table_auteur.id_auteur where texte_du_livre in ( select text_du_livre from table_livre group by substring(texte_du_livre, 1) having count(*) >1 );
Dites-moi que je fais un truc de faux et qu'il y a une solution simple à mon probleme...
J'ai essayé de passer par un script python mais ça va mettre 10j avant d'avoir la liste ... ça va tellement plus vite avec mysql
Merci infiniment d'avance si vous pouvez me depanner ...
Partager