【问题标题】:Problems figuring out what type of join to use in SQL确定在 SQL 中使用哪种类型的连接时出现问题
【发布时间】:2016-02-14 17:42:12
【问题描述】:

通常我使用 Linq to SQL 来处理所有数据库事务。但在我目前正在进行的项目中,我可能只使用纯 SQL。当我使用 Linq 时,我希望在 SQL 中执行的连接如下所示。

var query = (from districts in _db.SalesMenOnDistrict
                     join salesman in _db.Districts on districts.salesmanId equals salesman.SSN                      
                     where districts.districtId == district                      
                     select salesman);                   
        return query.ToList();

我的数据库有三个表格。第一个表称为 SalesMen,其中包含不同的推销员。表二包含不同的地区。第三个表包含来自销售员表的 SSN 号和来自地区表的 ID。我希望通过使用连接来获取地区 ID 上的所有销售人员。我只是不知道 SQL 脚本中的语法。

这是我到目前为止所得到的。

SELECT SSN, name
FROM SalesMan
INNER JOIN SalesMenOnDistrict
ON SalesMan.SSN = SalesMenOnDistrict.salesMan

当我这样做时,我只会让所有的推销员返回,而不仅仅是特定地区的推销员。

【问题讨论】:

  • 你没有 WHERE 子句将你的结果限制在你想要的地区
  • 你还没有实现语句的WHERE子句部分

标签: sql join


【解决方案1】:

只需添加一个 Where 子句:

SELECT SSN, name
FROM SalesMan
INNER JOIN SalesMenOnDistrict
ON SalesMan.SSN = SalesMenOnDistrict.salesMan
WHERE SalesMenOnDistrict = @yourDesiredDistrict

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多