连接SQLServer中连接两表的实践(sqlserver两表)
当我们想要在SQLServer中连接两张表时,我们可以采用内联接(Inner Join) 或外联接(Outer Join)。
内联接允许在两张表之间建立一个关联,查询需要在两两表之间有共同的值(主键/外键)。关联条件决定了检索出的记录取自待关联表中的哪些数据。
例如,我们需要从小马订购记录表中检索订购单里每种订购产品的相关信息,我们可以用一条内连接语句完成查询,如下所示:
“`sql
SELECT O.OrderID, P.ProductID, P.ProductName, O.Quantity
FROM Order O
INNER JOIN Product P
ON O.ProductID = P.ProductID
ORDER BY O.ProductID;
外联接时,我们可以强制SQLServer在没有和关联表中的值匹配时也从关联表中取值。
例如,我们需要查询订购表里全部记录,同时输出货品信息,包括已发出与未发出的:
```sqlSELECT O.OrderID, P.ProductID, P.ProductName, O.Quantity
FROM Order O LEFT OUTER JOIN Product P
ON O.ProductID = P.ProductIDORDER BY O.ProductID;
我们使用内联接或外联接取决于我们查询的目的。当我们想要取得完整有效的记录时,使用内联接;当我们想要包括关联另一表的完整记录的记录,即使没有关联键也行,使用外联接。
总结一下,当我们要连接两个表时,应该根据查询的目的确定是采用内联接还是外联接,如查询完整有效记录,应使用内联接,如需要包括关联另一表全部记录,即使没有关联键也可以,应该使用外联接。