C# 如何使用不同的主键/外键联接表

C# 如何使用不同的主键/外键联接表,c#,stored-procedures,join,primary-key,C#,Stored Procedures,Join,Primary Key,我在存储过程C#中遇到了一个关于如何连接3个表的问题。 例如: 表A: ID\u预算、名称、日期 表B: ID\u预算、数量、总预算 (表B为表A中的详细信息) 表C: ID_实际值,GrandTotalActual (表A、表B、表C中的总记录相同) 我对表A和表B使用内部联接,没有问题。但是,当我尝试与表C交叉连接时,它会给出重复的数据。交叉联接是在存储过程中添加表C时从C#自动生成的。我也尝试完全加入,但它不起作用 在Crystal report中,我想获得数据ID_Budget、Gran

我在存储过程C#中遇到了一个关于如何连接3个表的问题。 例如:

表A: ID\u预算、名称、日期

表B: ID\u预算、数量、总预算 (表B为表A中的详细信息)

表C: ID_实际值,GrandTotalActual

(表A、表B、表C中的总记录相同)

我对表A和表B使用内部联接,没有问题。但是,当我尝试与表C交叉连接时,它会给出重复的数据。交叉联接是在存储过程中添加表C时从C#自动生成的。我也尝试完全加入,但它不起作用

在Crystal report中,我想获得数据ID_Budget、GrandTotalBudget和GrandTotalActual

我需要你们的帮助,伙计们(或大师们)真的很快


谢谢你!!:)

您要做的是笛卡尔连接,它将把a和B中的所有行与C中的行结合起来。要正确地实现这一点,您需要有一些东西来连接这三个表

这和C有什么关系?你是说SQL Server吗?表C与表A和/或B的关系如何?我在C#中使用内部数据库。但我认为查询与SQL Server类似,这就是问题所在。我需要如何连接表A、B和C。但在表C中,没有外键可用于连接表A和表B。必须使用foregin键才能将表C连接到其他表