【问题标题】:Joining two tables with specific columns连接具有特定列的两个表
【发布时间】:2013-07-02 20:08:38
【问题描述】:

我是 SQL 新手,我知道这很基础,但我真的不知道该怎么做! 我要加入两个表,每个表可以说有 5 列,加入它们总共会给我 10 列,我真的不想要。我想要的是从两个表中选择特定列,以便它们仅在连接后显示。 (我只想将我的加入结果减少到特定列)

SELECT * FROM tbEmployees

JOIN tbSupervisor

ON tbEmployees.ID = tbSupervisor.SupervisorID

上面的语法会给我所有我不想要的列。我只想要 tblEmployees 表中的 EmpName、Address 和 tbSupervisor 表中的 Name、Address、project

我知道这一步:

SELECT EmpName, Address FROM tbEmployees

JOIN tbSupervisor

ON tbEmployees.ID = tbSupervisor.SupervisorID

但我不确定主管表。

我正在使用 SQL Server。

【问题讨论】:

  • 您只需要从每个表中输入您需要的列名。

标签: sql sql-server-2012


【解决方案1】:

这是你需要的:

Select e.EmpName, e.Address, s.Name, S.Address, s.Project
From tbEmployees e
JOIN tbSupervisor s on e.id = SupervisorID

您可以在W3Schools 上阅读更多信息。

【讨论】:

  • MS SQL 的分钟修正...Select e.EmpName, e.Address, s.Name, S.Address, s.Project From tbEmployees e JOIN tbSupervisor s on e.id = s.SupervisorID
【解决方案2】:

您可以通过其全名或使用别名从特定表中获取列:

SELECT E.EmpName, E.Address, S.Name, S.Address, S.Project
FROM tbEmployees E
INNER JOIN tbSupervisor S ON E.ID = S.SupervisorID

【讨论】:

    【解决方案3】:

    您可以使用表名作为列规范的一部分:

    SELECT tbEmployees.EmpName, tbEmployeesAddress, tbSupervisor.Name,
           tbSupervisor.Address, tbSupervisor.project
    
    FROM tbEmployees
    
    JOIN tbSupervisor
    
    ON tbEmployees.ID = tbSupervisor.SupervisorID
    

    【讨论】:

      【解决方案4】:
      SELECT employees.EmpName, employees.Address AS employeer address, supervisor.Name, supervisor.Address AS supervisor address,supervisor.project FROM tbEmployees AS employees JOIN tbSupervisor AS supervisor ON employees.ID = supervisor.SupervisorID

      【讨论】:

        【解决方案5】:

        您需要了解别名。它们将使您的查询更易于维护。此外,在引用列时,您应该始终使用别名,这样您的查询就可以清楚地知道它在做什么:

        SELECT e.EmpName, e.Address, s.name, s.address as SupervisorAddress
        FROM tbEmployees e  JOIN
             tbSupervisor s
             ON e.ID = s.SupervisorID;
        

        请注意,我还重命名了第二个地址,因此它的名称是唯一的。

        【讨论】:

          【解决方案6】:

          在您的选择中指定表名和字段名

          SELECT tbEmployees.EmpName,
                 tbEmployees.Address,
                 tbSupervisor.[column name]
            FROM tbEmployees
            JOIN tbSupervisor ON tbEmployees.ID = tbSupervisor.SupervisorID
          

          【讨论】:

            【解决方案7】:
            SELECT product_report.*, 
                   product.pgroup 
            FROM   `product_report` 
                   INNER JOIN product 
                           ON product_report.product_id = product.id 
            WHERE  product.pgroup = '5' 
            ORDER  BY product.id DESC 
            

            【讨论】:

            • 看来你的帖子主要是代码,请补充一些细节
            猜你喜欢
            • 1970-01-01
            • 2011-04-07
            • 2020-01-28
            • 2012-01-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-11-25
            • 1970-01-01
            相关资源
            最近更新 更多