使用特定列连接两个表

时间:2013-07-02 20:08:39

标签: sql sql-server-2012

我是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。

7 个答案:

答案 0 :(得分:16)

这就是你需要的:

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

但是,我肯定会建议在SQL上阅读更多内容。 http://www.w3schools.com/sql/default.asp是一个不错的起点。

答案 1 :(得分:10)

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

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

答案 2 :(得分:4)

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

SELECT tbEmployees.EmpName, tbEmployeesAddress, tbSupervisor.Name,
       tbSupervisor.Address, tbSupervisor.project

FROM tbEmployees

JOIN tbSupervisor

ON tbEmployees.ID = tbSupervisor.SupervisorID

答案 3 :(得分: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



答案 4 :(得分:1)

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

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

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

答案 5 :(得分:1)

在选择中指定表名和字段名称

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

答案 6 :(得分:0)

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