2012-03-05 5 views
1

J'ai 2 tables et j'ai besoin de sélectionner les informations relatives, besoin d'aide avec la requête.requête SQL plusieurs tables

Le tableau 2 contient les colonnes ID, MaskID.

Tableau 3 a MaskID, MaskName, Total

En supposant que j'ai un ID déjà donné, comment puis-je choisir le ID, MaskName, Total des tables? Comment puis-je les traverser?

Répondre

1

La requête TSQL serait:

SELECT t2.ID, t3.MaskName, t3.Total 
FROM Table2 AS t2 INNER JOIN Table3 AS t3 ON (t2.MaskId = t3.MaskId) 
WHERE ID = 123 

Pas sûr ce que vous entendez par 'traverse' à travers eux.

0

Vous souhaiterez peut-être utiliser une requête Join in your sql. Le w3schools site a une page expliquant comment l'utiliser.

+1

est une mauvaise chose à mentionner W3Schools comme une ressource sur le SO (voir w3fools.com). Il y a beaucoup de meilleures ressources là-bas, y compris http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html – Taryn

2
SELECT t2.ID,t3.MaskName,t3.Total 
FROM Table2 t2 INNER JOIN Table3 t3 
ON t2.MaskID=t3.MaskID; 
0
SELECT a.ID, b.MaskName, b.Total from 2 a INNER JOIN 3 b ON a.MaskID=b.MaskID WHERE ID='Given value' 

C'est un simple MySQl/T SQL/PLSQL requête. Utilisez simplement une INNER JOIN sur les deux tables. Une jointure fonctionne en combinant les deux tables côte à côte. L'INNER JOIN ne sort que le résultat de l'intersection des deux tables. C'est-à-dire, seulement les lignes où la clé primaire et la clé étrangère ont une valeur correspondante.

Dans certains cas, vous pouvez également avoir besoin d'autres lignes, dans ce cas, recherchez LEFT JOIN, RIGHT JOIN et FULL JOIN.

0
select ID, MaskName, Total from TABLE_2 
inner join TABLE_3 on (TABLE_2.MaskID=TABLE_3.MaskID) 
where ID=111 
-1

vous utilisez cette requête qui devraient

select ID,MaskName,Total from Table1 Inner join Table2 on Table1.MaskID = Table2.MaskId where ID = "given value"

+5

Vous devez utiliser la bonne syntaxe de style ANSI JOIN - don ' t liste simplement les tables dans une liste séparée par des virgules - utilisez la syntaxe 'INNER JOIN'! C'est la norme ANSI, c'est beaucoup plus clair pour le lecteur! –