【问题标题】:How to compare/match values in sql server in two different tables如何在两个不同的表中比较/匹配sql server中的值
【发布时间】:2013-12-26 03:55:04
【问题描述】:

我需要两张桌子。

第一个表 (tblStudent) 包含字段 student_id,firstname,lastname,class,rollno

第二个表(feeType)有字段classadmissionFeetuitionFee

我想显示每个班级的不同费用。 就像5班支付600作为学费,而6班将支付700。

例如。如果第一个表中的类是 5,那么应该只显示 feeType 中的类 5 行吗?我该如何设计这样的表格?如何连接两个表?我将使用 sql server 2008 和 c# 作为前端。感谢新手。

【问题讨论】:

  • 听起来你需要先打开一本书
  • @T.S.我当然愿意,先生。任何建议将不胜感激。

标签: c# sql sql-server winforms


【解决方案1】:

这是最简单的 INNER JOIN 类型:

SELECT *
FROM tblStudent AS s
INNER JOIN feeType as f ON s.class = f.class

【讨论】:

    【解决方案2】:

    您的 INNER JOIN 只会返回匹配的记录,对于不匹配的记录,您可以使用 FULL JOIN 和 WHERE 条件进行检查。

    SELECT *
    FROM tblStudent AS s
    INNER JOIN feeType as f ON s.class = f.class where s.class=null;
    

    Visit here

    【讨论】:

    • 感谢您的帮助。我会把它全部浸泡。
    • 这里的不匹配记录是什么意思,你能举个例子吗?
    • 'where s.class=null' 返回不匹配的记录
    【解决方案3】:

    这将列出所有班级名称及其费用。

    SELECT 
         s.class, 
         f.admissionFee as admission_fee, 
         f.tuitionFee as tuition_fee
    FROM 
         tblStudent as s
         JOIN feeType as f ON s.class = f.class
    GROUP BY 
         s.class; 
    

    我希望这将帮助您获得确切的结果集。

    【讨论】:

    • 您的代码给了我错误“'feeType.admissionFee' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。”所以我添加了这些“f.admissionFee, f.tutionFee;”只有在 group by 子句中代码才起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 2017-11-01
    • 2015-05-07
    • 2014-05-09
    • 1970-01-01
    相关资源
    最近更新 更多