Je suis nouveau dans le monde SQL Server. J'ai deux tables par exempleComment obtenir le nom de la deuxième table en se référant à un ID de la première table?
gameDetails(gid, name, categoryid, companyid, year)
et
gameSubDetails(id, name, delflag)
En gameDetails
j'ai emmagasinés ids de gameSubDetails
dans categoryid
et companyid
.
Maintenant, si je veux rechercher une valeur gameDetails
en fonction des critères aussi de gameDetails
, Comment puis-je obtenir le nom du Category
et Company
de gameSubDetails
? Par exemple, je veux rechercher toutes les valeurs de gameDetails
où year = 2015
.
J'ai donc écrit requête comme
select
g.gName, gsub.name as catid, gsub.name as compid
from
gameMaster g, gameSubDetails gsub
where
g.compid = gsub.id
and g.year = '2015'
Mais il ne montre que le nom de l'entreprise dans les deux (de catid, compid), mais même si je tente de mettre une autre condition where avec catid comme where g.compid = gsub.id and g.catid = gsub.id and .year='2015'
il ne renvoie aucun enregistrement .
Veuillez indiquer quelle est la meilleure façon de travailler sur ce scénario.
Remarque: CategoryId
et CompanyID
sont stockés dans le même tableau gameSubDetails
juste Id est différent. basé sur
mysql ou (MS) SQL-Server? S'il vous plaît supprimer les balises pour les produits qui ne sont pas pertinents ici – Jens
[Mauvaises habitudes à coup de pied: en utilisant les anciens JOINs] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to- kick-using-old-style-joins.aspx) - ce style de liste de tables * séparé par des virgules à l'ancienne * a été remplacé par la syntaxe * proper * ANSI 'JOIN' dans la norme SQL ANSI - ** 92 ** (** il y a 25 ans **) et son utilisation est déconseillée –
Pourquoi ne pouvez-vous pas interroger 'year' directement à partir de' gameDetails'? –