Requête SQL de deux tables avec une relation un-à-plusieurs
J'ai deux tables Une Bande et la relation entre A à B est Un--->un-à-Plusieurs--->B
Normalement j'ai un enregistrement de B pour chaque enregistrement de A.
Je suis en train d'écrire une requête qui pourrait me donner la liste de SEULEMENT enregistrements qui ont plus de UN(PLUSIEURS) dossier(s) dans B.
Je suis très confus comme je l'ai fait uniquement de base des requêtes sql, et celui-ci semble complexe pour moi.
Peut-on s'il vous plaît me guider vers la réponse est correcte ou me donner la solution.
édité:
ok j'ai essayé quelque chose comme ci-dessous et il m'a donné une erreur
SÉLECTIONNEZ SOME_COLUMN_NAME DE A A, B b OÙ un.ID=b.L'ID et le comte b.SOME_OTHER_COLUMN_NAME)>1;
ORA-00934: fonction de groupe n'est pas autorisé ici
J'ai essayé de chercher sur internet annonce je ne suis pas autorisé à utiliser le regroupement dans la clause where et doit se faire à l'aide de l'avoir. Je suis coincé ici et maintenant.
OriginalL'auteur oortcloud_domicile | 2012-02-23
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas de préciser que le système de base de données (sql-server/mysql/sqlite/oracle etc) donc c'est une réponse générique.
Dans ce formulaire, la liste de toutes les colonnes d'Une manière explicite dans les SÉLECTIONNER et les clauses GROUP BY. Normalement, il génère une bonne ligne de conduite à suivre dans la plupart des SGBD. Mais il peut aussi échouer lamentablement si le type n'est pas un GROUPE-mesure, tels que des colonnes de TEXTE dans SQL Server.
Cette autre forme à l'aide d'une sous-requête fonctionne pour tous les types de colonne dans Un et normalement produit exactement le même plan.
OriginalL'auteur RichardTheKiwi
Vous pourriez le faire avec une sous-requête:
OriginalL'auteur Ray
en supposant que la tableB a un champ appelé idA qui le lie à tableA
OriginalL'auteur Diego