如何在SQL Server或C linq查询中联接两个表

如何在SQL Server或C linq查询中联接两个表,sql,sql-server,Sql,Sql Server,我试图加入两个表,但我没有得到什么,我在寻求帮助 我的桌子在下面。我想在SQL或C Linq查询中使用join 表1: 表2 输出必须是 RefNo Amount InvestmentID StatusID -------------------------------------------- BPWM67A7A7 540 1 2 SQL中的当前代码: Select b.RefNo, b.Amount, a.Investme

我试图加入两个表,但我没有得到什么,我在寻求帮助

我的桌子在下面。我想在SQL或C Linq查询中使用join

表1:

表2

输出必须是

RefNo       Amount  InvestmentID    StatusID
--------------------------------------------
BPWM67A7A7  540     1               2
SQL中的当前代码:

Select 
    b.RefNo, b.Amount, a.InvestmentID,StatusID
from 
    Investment a 
join 
    Investment_Line b on a.InvestmentID = b.InvestmentID
where  
    b.InvestorID != 1
电流输出:

RefNo       Amount  InvestmentID    StatusID
--------------------------------------------
BPWM67A7A7  540     1               4
BPWM67B7K7  910     3               2

使用以下条件

Select b.RefNo, b.Amount, a.InvestmentID,StatusID
from Investment a join Investment_Line b on a.InvestmentID = b.InvestmentID
where  b.InvestmentID =1 and  b.InvestorID !=1

使用以下条件

Select b.RefNo, b.Amount, a.InvestmentID,StatusID
from Investment a join Investment_Line b on a.InvestmentID = b.InvestmentID
where  b.InvestmentID =1 and  b.InvestorID !=1
试试下面的方法

Select b.RefNo, b.Amount, a.InvestmentID,StatusID
from Investment a join Investment_Line b on a.InvestmentID = b.InvestmentID
where  b.InvestorID !=1 and a.StatusID =4
在where条件中添加a.StatusID=4或b.RefNo='BPWM67A7A7'。

尝试以下操作

Select b.RefNo, b.Amount, a.InvestmentID,StatusID
from Investment a join Investment_Line b on a.InvestmentID = b.InvestmentID
where  b.InvestmentID =1 and  b.InvestorID !=1
Select b.RefNo, b.Amount, a.InvestmentID,StatusID
from Investment a join Investment_Line b on a.InvestmentID = b.InvestmentID
where  b.InvestorID !=1 and a.StatusID =4
在where条件中添加a.StatusID=4或b.RefNo='BPWM67A7A7'。

对于SQL Server,请按照Balaji的建议使用此选项

Select b.RefNo, b.Amount, a.InvestmentID,StatusID
from Investment a join Investment_Line b on a.InvestmentID = b.InvestmentID
where  b.InvestmentID =1 and  b.InvestorID !=1
Select b.RefNo, b.Amount, a.InvestmentID, a.StatusID
from Investment a join Investment_Line b on a.InvestmentID = b.InvestmentID
where  a.StatusId = 4 and a.InvestmentID = 1
对于C,试试这个

var output =
from t1 in context.table1
join t2 in context.table2 on t1.RefNo = t2.RefNo
where t1.StatusID == 4 and t1.InvestmentID == 1
select new {t1.RefNo, t1.Amount, t1.InvestmentID, t1.StatusID};
对于SQL Server,请像Balaji建议的那样使用它

Select b.RefNo, b.Amount, a.InvestmentID, a.StatusID
from Investment a join Investment_Line b on a.InvestmentID = b.InvestmentID
where  a.StatusId = 4 and a.InvestmentID = 1
对于C,试试这个

var output =
from t1 in context.table1
join t2 in context.table2 on t1.RefNo = t2.RefNo
where t1.StatusID == 4 and t1.InvestmentID == 1
select new {t1.RefNo, t1.Amount, t1.InvestmentID, t1.StatusID};


到目前为止您尝试了什么?到目前为止,输出正是您在当前SQL中所要求的。你能用你真正想要达到的目标来更新这个问题吗?@M.Wiśnicki OP已经发布了代码你的查询没有筛选器b.InvestorID!=2.将此筛选器也包括在where子句中,作为where b.InvestorID=1和b.InvestorID!=2@Dlamini.M同时,关于linq连接的教程和示例也很多。。做一些研究到目前为止您尝试了什么?到目前为止,输出正是您在当前SQL中所要求的。你能用你真正想要达到的目标来更新这个问题吗?@M.Wiśnicki OP已经发布了代码你的查询没有筛选器b.InvestorID!=2.将此筛选器也包括在where子句中,作为where b.InvestorID=1和b.InvestorID!=2@Dlamini.M同时,关于linq连接的教程和示例也很多。。进行一些研究,其中b.InvestmentID==1这甚至不会compile@Rahul我注意到他/她犯了一个错误,把==改成了,但还是给了我错误的答案result@Rahul编辑答案,错误地将==改为=@Dlamini.M尝试以下选项选择b.RefNo,b.Amount,a.InvestmentID,来自投资a的StatusID加入a.InvestmentID=b.ID上的投资b行,其中b.InvestmentID=1和b.InvestorID=1其中b.InvestmentID==1这甚至不会compile@Rahul我注意到他/她犯了一个错误,把==改成了,但还是给了我错误的答案result@Rahul编辑答案,错误地将==改为=@Dlamini.M尝试以下选项选择b.RefNo,b.Amount,a.InvestmentID,来自投资a的StatusID加入a.InvestmentID=b.ID上的投资b行,其中b.InvestmentID=1和b.InvestorID=1投资\u行未调用任何列StatusId@Dlamini.M修正了。是的,你做了,但仍然给了我错误的结果。状态它给我4,但状态是2@Dlamini.M尝试将表1 investmentID和表2 ID连接起来,这样应该可以工作。要实现您的结果,请从a.InvestmentID=b.ID上的投资a中选择b.RefNo、b.Amount、a.InvestmentID、StatusID,其中b.InvestmentID=1和b.InvestorID=1投资\u行未调用任何列StatusId@Dlamini.M修正了。是的,你做了,但仍然给了我错误的结果。状态它给我4,但状态是2@Dlamini.M尝试将表1 investmentID和表2 ID连接起来,这样应该可以工作。要实现您的结果,请从a.InvestmentID=b.ID上的投资a中选择b.RefNo、b.Amount、a.InvestmentID、StatusID,其中b.InvestmentID=1和b.InvestorID=1.