J'ai un accès dB avec une table de table1 qui contient les informations suivantes: chaque adresse_id appartient à un client dédié (spécifié de manière unique). P> J'ai besoin Pour créer une requête SQL qui ne renvoie que ces lignes de la table pour lesquelles l'adresse_id a exactement une entrée dédiée, par exemple Si mes critères de filtrage sont "Retour catégorie_id = 41", le résultat attendu est le suivant: p> ou s'il est "Retour catégorie_id = 66", le résultat est une table vide. p> Comment puis-je implémenter une requête sans effectuer de post-traitement par script? p> p>
4 Réponses :
Utilisation de Nombre () code> et
ayant code>:
J'utiliserais n'existe pas code>:
Cette requête: retourne: p> Seulement ces rangées de la table pour lesquelles l'adresse_id a exactement un
Entrée dédiée p>
blockQuote> Vous pouvez maintenant appliquer n'importe quel filtre et obtenir les résultats souhaités: p>
J'utiliserais vous pouvez ajouter S'il n'y a pas de paires en double dans la table, vous pouvez également en formuler: P> groupe par code> et
ayant code>:
41 comme catégorie_id code> à Le
Sélectionnez code> si vous le souhaitez, mais vous le savez déjà. p>
select address_id
from table1
group by address_id
having count(*) = 1 and
min(category_id) = 41;
Fonctionne parfaitement. Merci