我有一个不适用于所有参数的存储过程@AnID

时间:2017-08-10 13:03:31

标签: sql left-join

该参数是一个ID,它是table1的主键。其他3个表包含有关table1的参考的详细信息。显然,如果我删除了所有连接,我只能从Table1获得任何ID的数据。我真的很想了解发生了什么。谢谢。

SELECT 
    Detail14, Detail15, Detail16, //etc, etc
FROM 
    Table1 
INNER JOIN
    dbo.Table2 ON dbo.Table1.FK_AnID = dbo.Table2.PK_AnotherID 
INNER JOIN
    dbo.tblTable3 ON dbo.Table2.FK_Group = dbo.tblTable3.PK_RowID 
LEFT JOIN 
    dbo.tblTable4 ON dbo.tblTable4.Name = dbo.Table1.Named
WHERE 
    PK_RefNumber = @AnID

1 个答案:

答案 0 :(得分:0)

通过分步进行分解。使用select *直到你有正确的连接,然后转到你想要的特定字段。

因此,使用where子句获取第一个表的记录(如果它来自第一个表)。添加第二个表。如果您获得记录,那么这不是问题的根源,并添加第三个,等等。

可能你要么加入错误的字段,要么你有一个需要左连接的内连接。