Fondamentalement, j'ai deux tablesenregistrements Sélectionnez sans aucun des documents connexes de certains types
articleID
1
2
3
4
relatedType | articleID
3 1
4 1
3 2
4 3
5 3
2 4
je dois sélectionner le articleID qui n'a pas de documents connexes avec type > 3
. Avec cet ensemble de données, je dois essentiellement:
articleID
2
4
Parce que leur type connexe ne contiennent que 3 et 2.
je con avec cette requête:
SELECT * FROM article
WHERE articleID NOT IN (SELECT articleID FROM relatedTable
^ WHERE type > 3 GROUP BY portalid)
|
|--- NOT IN does the trick!
mais je voudrais éviter imbriquée requête car cette requête est assez lente. Un indice?
Je crois que EXISTS est encore plus lent que PAS DANS – dynamic
Mais! Tu avais raison, le problème était GROUP BY. Il a ajouté 10sec à la dernière fois (maintenant c'est sous 0.5 sec) – dynamic
@llnk: vous pouvez avoir raison à propos de mysql, je n'ai pas travaillé avec lui pendant un certain temps ... Cependant; Je crois que cela peut (et devrait) changer à l'avenir. – a1ex07