Avant de plonger dans la question, je vais d'abord expliquer la situation. J'ai deux tables telles que les suivantes:MySQL résultats retour d'une table à partir des données dans une autre table
USERS TABLE
user_id
username
firstName
lastName
GROUPS TABLE
user_id
group_id
Je veux récupérer tous les utilisateurs qui PRÉNOM est LIKE « % foo% » et qui fait partie d'un groupe avec group_id = « givengid »
Ainsi, la requête voudrait quelque chose comme ceci:
SELECT user_id FROM users WHERE firstName LIKE '%foo'"
je peux faire une fonction SQL définie par l'utilisateur tels que ismember (user_id, group_id) qui renverra 1 si l'utilisateur est une partie du groupe et 0 si elles ne sont pas et ceci à la clause WHERE dans l'instruction select précitée. Toutefois, cela signifie que pour chaque utilisateur dont le prénom correspond aux critères, une autre requête doit être exécutée à travers des milliers d'autres enregistrements pour trouver une correspondance potentielle pour une entrée de groupe.
Le tableau des utilisateurs et des groupes auront chacun plusieurs centaines de milliers de dossiers. Est-il plus classique d'utiliser l'approche de fonction définie par l'utilisateur ou d'exécuter une requête à l'aide de l'instruction UNION? Si l'approche UNION est la meilleure, à quoi ressemblerait la requête avec la déclaration du syndicat?
Bien sûr, je vais courir des repères mais je veux juste obtenir une certaine perspective sur la gamme possible de solutions pour cette situation et ce qui est généralement le plus efficace/efficace.
Curieux, quelle est la différence entre INNER JOIN et simplement JOIN? – user396404
Il n'y a pas de différence, JOIN est un sucre syntaxique pour INNER JOIN. –