2010-05-16 6 views
0

Voici mon scénarioAide dans la formulation de requête SQL

Tableau 1: GID || Info1

Tableau 2: GID || Tb1GID (renvoie au GID de la Table1) || Info2

Tableau 3: GID || Info3

Tableau 4: GID || Tb2GID (fait référence à GID de || Tableau2 Tb3GID (fait référence à Table3 GID || Valeur

Maintenant, je dois construire une requête SQL pour obtenir la valeur, étant donné un Info1, Info2, Info3 . Essentiellement particulier , Je dois obtenir le GID, de la table 1 en utilisant info1, GID de la table à, en mappant info2 et GID de la table 1. Et puis obtenir le GID de la table 3 en utilisant info 3. Et les combiner en GID pour obtenir la valeur ? tableau 4.

Quelle est la manière la plus optimale de construire une requête SQL pour celui

+1

Quelles requêtes avez-vous déjà reçues? – Oded

Répondre

2

Il suffit de rejoindre les tables de l'ID: s et correspondent aux valeurs d'information dans l'état:

select 
    t4.Value 
from 
    [Table 1] as t1 
    inner join [Table 2] as t2 on t2.Tb1GID = t1.GID 
    inner join [Table 4] as t4 on t4.Tb2GID = t2.GID 
    inner join [Table 3] as t3 on t3.GID = t4.Tb3GID 
where 
    t1.Info1 = @Info1 and 
    t2.Info2 = @Info2 and 
    t3.Info3 = @Info3 

Cela communique plus clairement le fonctionnement des relations, donnant le planificateur de requêtes les meilleures informations pour travailler avec.

+1

Vous pouvez également déplacer les clauses WHERE pour 't2' et' t3' dans leurs JOINs respectifs. –