Sql 如何同时连接两个表?
表Sql 如何同时连接两个表?,sql,Sql,表产品 Id name t1 t2 1 A 1 4 2 B 5 2 3 C 3 1 4 D 4 5 表Tan id tan 1 tanA 2 tanB 3 tanC 4 tanD 5 tanE 我有两个以上的表,我希望结果如下,在预期结果如何是可能的 预期结果 A tanA tanD B tanE tanB C tanC tanA
产品
Id name t1 t2
1 A 1 4
2 B 5 2
3 C 3 1
4 D 4 5
表Tan
id tan
1 tanA
2 tanB
3 tanC
4 tanD
5 tanE
我有两个以上的表,我希望结果如下,在预期结果如何是可能的
预期结果
A tanA tanD
B tanE tanB
C tanC tanA
D tanD tanE
您可以在多个表上进行联接:
SELECT p.Name AS ProductName,
t1.tan AS Tan1,
t2.tan AS Tan2
FROM dbo.Product p
INNER JOIN Tan t1
ON p.t1 = t1.id
INNER JOIN Tan t2
ON p.t2 = t2.id
ORDER BY ProductName ASC
您可以使用表别名从tan表中选择两次:
FROM Product INNER JOIN tan tan1 ON tan1.id = product.t1
INNER JOIN tan tan2 ON tan2.id = product.t2
选择适当的列:
SELECT Product.name AS name, tan1.tan AS Tan_1, tan2.tan AS Tan_2
给予:
SELECT product.name AS name, tan1.tan AS Tan_1, tan2.tan AS Tan_2
FROM Product INNER JOIN tan tan1 ON tan1.id = product.t1
INNER JOIN tan tan2 ON tan2.id = product.t2
到目前为止你试过什么吗?还有,要求是什么?您没有提供太多信息。@MyFirst Try从产品pr中选择pr.name、j1.tan、j2.tan pr.t1==j1.id pr.t2==j2.id的join tan j2==j2.id
请不要在where
子句中使用过时且容易出错的隐式联接。最好使用显式的JOIN
操作符。我发现使用隐式连接更容易解释它,但这确实是我应该改掉的习惯。。。