Voici ma requête
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT * FROM fungi2 
WHERE  sequence REGEXP 'CACATTG.*GTCGCA' 
AND organism NOT IN (SELECT DISTINCT(organism) FROM fungi2_consensus 
WHERE linking_consensus LIKE 'Alternaria_alternata') 
AND organism NOT LIKE 'Alternaria alternata'
375 entrées (traitement: 0.4401 sec)


Par contre pour (ou seul 'SELECT DISTINCT(organism)' ne change)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT DISTINCT(organism) FROM fungi2 
WHERE  sequence REGEXP 'CACATTG.*GTCGCA' 
AND organism NOT IN (SELECT DISTINCT(organism) FROM fungi2_consensus 
WHERE linking_consensus LIKE 'Alternaria_alternata') 
AND organism NOT LIKE 'Alternaria alternata'
Cela ne fonctionne plus, MySQL tourne pendant plusieurs minutes et puis affiche un écran blanc.


Peut-être pourrais-je optimiser mes requêtes.
Fungi2_consensus est une sous-tables provenant de Fungi2 et possède la même PK id liées entre elles par une FK.
J'ai également un index sur le champ Fungi2.organism

Au lieu de faire un SELECT DISTINCT(organism) FROM fungi2_consensus WHERE linking_consensus like 'Alternaria_alternata' serait-il préférable de travailler sur la liste complète des id? Mais, cela allongerait la liste du NOT IN. A moins que je ne crée des index dans la table Fungi_consensus sur les champs organism et linking_consensus.

J'ai aussi essayé de remplacer le LIKE de linking_consensus LIKE 'Alternaria_alternata' par un = mais j'obtiens un résultat différent!

Merci pour vos conseilles.