T-SQL JOIN
内联接JOIN,从两个或多个有关联的表取得更详尽的信息。内联接的逻辑为先对这两张时行笛卡尔积运算,再根据指定谓词对结果进行过滤。
为了演示,下面只实现两张表, 一张表[Machine],其中主键为[M_Id];另一张表[Job],此表的主键[J_Id]和外键[M_Id]即是表[Machine]的主键。
[Machine]表:
M_Id | MachineName | LineName | IsActive |
1341 | MP36 | L3 | 1 |
1342 | B288 | L2 | 1 |
1344 | LC57 | L4 | 1 |
1345 | QT43 | L6 | 1 |
[Job]表:
J_Id | M_Id | JobNumber | J_Date |
1 | 1344 | 2306 | 3/2/2011 |
2 | 1344 | 2352 | 3/3/2011 |
3 | 1345 | 2337 | 3/5/2011 |
4 | 1363 | 2346 | 3/6/2011 |
5 | 1341 | 2317 | 3/4/2011 |
演示例子,取得Job单和加工的Machine记录:
View Code
SELECT M.[M_Id],J.[J_Id],[MachineName],[LineName],[JobNumber],[J_Date] FROM [dbo].[Machine] AS M
INNER JOIN --INNER关键词是可选的,可以单独指定JOIN关键词即可。
[dbo].[Job] AS J
ON (M.[M_Id] = J.[M_Id])
INNER JOIN --INNER关键词是可选的,可以单独指定JOIN关键词即可。
[dbo].[Job] AS J
ON (M.[M_Id] = J.[M_Id])
执行得到的结果: