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