J'ai une table d'employés et leur emploi du temps, comme si:requête MySQL pour tous les termes de recherche dans l'index
Emp_Name | Date
-------- -----
Smith | 08-01-2009
Jones | 08-01-2009
Goodman | 08-02-2009
Smith | 08-02-2009
Jones | 08-02-2009
Goodman | 08-03-2009
Comment pourrais-je écrire une requête afin que les résultats étaient seuls les noms des employés des employés travaillant sur 08-02-2009
et 08-03-2009
. Je me fais prendre parce que tout ce que je peux penser sont des moyens d'obtenir les noms pour l'un ou l'autre match, mais je n'arrive pas à trouver la bonne façon d'obtenir les résultats pour seulement les noms qui correspondent à tous rechercher des critères sur plusieurs lignes. Donc, sur la base des conditions de l'exemple, je ne devrais obtenir que Goodman. Mais si je fais une requête comme WHERE Date IS (list of dates)
j'obtiendrais Goodman et Smith et Jones, puisque Smith et Jones travaillent tous les deux le 08-02-2009. Si j'essaie de faire une sorte de JOIN, je ne finirais pas toujours par des colonnes égales, puisque le nombre de jours travaillés par chaque employé est variable. Je pensais que Union pourrait être la voie à suivre, mais je ne saurais pas toujours comment les conditions de recherche de quelqu'un.
Pas besoin de sélectionner le nombre et vous pouvez utiliser un IN au lieu de l'OU, mais je pense que c'est aussi bon que vous pouvez obtenir –
J'ai mis le compte dans la sortie car je pensais qu'il illustrerait ce qui se passait. Vous écrivez à propos de l'utilisation de IN, l'avez modifié. –
Existe-t-il un moyen de transmettre le nombre de paramètres de recherche en tant que variable à la partie HAVING (en dehors de l'écriture de scripts à l'extérieur de la requête)? C'est vraiment bien, au fait. – Anthony