impossible d'utiliser "in" ?
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 :
Code:
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; |
là , j'obtiens 17000 lignes avec l'identite d'un seul des livres à chaque fois :
2 tintin id526665
5 biloute id599986
3 trucmuche id2649758
...
si je fais
2ieme requete:
Code:
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
); |
là j'obtiens les 2 livres identiques
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:
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 ...