C# 从多个表中选择的嵌套子查询
我有三张桌子:C# 从多个表中选择的嵌套子查询,c#,sql,data-binding,datagridview,oracle10g,C#,Sql,Data Binding,Datagridview,Oracle10g,我有三张桌子: Years (YearId,Year) Months (MonthID,Month) Date (DateID,YearID,MonthID) Client (CLientID,ClientName) Payment (PayID,ClientID,DateID,Amount) 我想将DataGridView填写为: Client Name, Amount, Year, Month 我用了这句话,但没用: Select * From (select Year From Ye
Years (YearId,Year)
Months (MonthID,Month)
Date (DateID,YearID,MonthID)
Client (CLientID,ClientName)
Payment (PayID,ClientID,DateID,Amount)
我想将DataGridView填写为:
Client Name, Amount, Year, Month
我用了这句话,但没用:
Select * From (select Year From Years Where YearID = (Select YearId From Date Where dateID = (Select DateID From Payment))),(Select Month From Months Where Monthid = (Select MonthID From Date Where dateID = (Select DateID From Payment))),(Select ClientName From Client Where ClientID = (Select ClientID From Payment),(Select amont From Payment)
听起来您只是想使用
内部联接
:
SELECT C.ClientName,
P.Amount,
Y.Year,
M.Month
FROM Payment P
INNER JOIN Client C
ON P.ClientID = C.ClientID
INNER JOIN Date D
ON P.DateId = D.DateId
INNER JOIN Years Y
ON D.YearId = Y.YearId
INNER JOIN Months M
ON D.MonthId = M.MonthId
有关联接的良好视觉表示,请参见下文:
SELECT C.ClientName,
P.Amount,
Y.Year,
M.Month
FROM Payment P
INNER JOIN Client C
ON P.ClientID = C.ClientID
INNER JOIN Date D
ON P.DateId = D.DateId
INNER JOIN Years Y
ON D.YearId = Y.YearId
INNER JOIN Months M
ON D.MonthId = M.MonthId
请定义“它不起作用”。。你收到错误信息了吗?此外,你说你有3张桌子,但你说的是5张!顺便问一下,您是否听说过sqljoin
?我认为这是一个更好的解释:@sgedes它现在的工作非常感谢您Much@MohamedHmmam--np,很高兴我能帮上忙@sgeddes我可以在你的代码之后这样做吗,其中Y.Year=@Yvar和M.Month=@MvarSELECT C.ClientName,P.Amount,Y.Year,M.付款后的月份P内部连接客户端C ON P.ClientID=C.ClientID内部连接日期D ON P.DateId=D.DateId内部连接年份Y ON D.YearId=Y.YearId内部连接月份M ON D.Montid=M.Montid其中Y.Year=@Yvar和M.Month=@Mvar