尝试在SQL中显示多个表中的值
我在SQL中有两个表,其中一个表包含员工ID(emp_ID)及其名字和姓氏。另一个表包含员工ID及其总销售额。我只想看到那些总销售额高于25000的记录的名字、姓氏和总销售额。第一个表的名称是employee,第二个表的名称是works\u with 我使用的代码是:尝试在SQL中显示多个表中的值,sql,sql-server,join,Sql,Sql Server,Join,我在SQL中有两个表,其中一个表包含员工ID(emp_ID)及其名字和姓氏。另一个表包含员工ID及其总销售额。我只想看到那些总销售额高于25000的记录的名字、姓氏和总销售额。第一个表的名称是employee,第二个表的名称是works\u with 我使用的代码是: SELECT employee.first_name, employee.last_name,works_with.total_sales FROM employee WHERE employee.emp_id IN (
SELECT employee.first_name, employee.last_name,works_with.total_sales
FROM employee
WHERE employee.emp_id IN (
SELECT works_with.emp_id
FROM works_with
WHERE works_with.total_sales>25000
);
我得到以下错误:
“Msg 4104,16级,状态1,第25行
无法绑定多部分标识符“与.total\u sales一起工作”
如何修复此错误
谢谢根据您的要求,此查询可能会起作用。可以使用
JOIN
链接问题中的这两个表
select t1.first_name,
t1.last_name,
t2.total_sales
from employees t1
join works_with t2
on t2.emp_id = t1.emp_id
where t2.total_sales > 25000
您可以联接bth表并显示总销售额大于2500的所有行
SELECT employee.first_name, employee.last_name,works_with.total_sales
FROM employee INNER JOIN works_with ON works_with.emp_id = employee.emp_id
WHERE works_with.total_sales>25000;
如果这样写,您的查询仍然有效:
SELECT employee.first_name, employee.last_name
FROM employee
WHERE employee.emp_id IN (
SELECT works_with.emp_id
FROM works_with
WHERE works_with.total_sales>25000
);
SELECT employee.first_name, employee.last_name, works_with.total_sales
FROM employee
JOIN works_with
on employee.emp_id=works_with.emp_id
WHERE works_with.total_sales>25000
SELECT employee.first_name, employee.last_name, works_with.total_sales
FROM employee, works_with
WHERE employee.emp_id=works_with.emp_id
and works_with.total_sales>25000
您的选择失败,因为它没有列与.total\u sales
一起工作。
您可以使用join
子句将works\u with.total\u sales
添加到您的选择中,如下所示:
SELECT employee.first_name, employee.last_name
FROM employee
WHERE employee.emp_id IN (
SELECT works_with.emp_id
FROM works_with
WHERE works_with.total_sales>25000
);
SELECT employee.first_name, employee.last_name, works_with.total_sales
FROM employee
JOIN works_with
on employee.emp_id=works_with.emp_id
WHERE works_with.total_sales>25000
SELECT employee.first_name, employee.last_name, works_with.total_sales
FROM employee, works_with
WHERE employee.emp_id=works_with.emp_id
and works_with.total_sales>25000
或者选择多个表,如下所示:
SELECT employee.first_name, employee.last_name
FROM employee
WHERE employee.emp_id IN (
SELECT works_with.emp_id
FROM works_with
WHERE works_with.total_sales>25000
);
SELECT employee.first_name, employee.last_name, works_with.total_sales
FROM employee
JOIN works_with
on employee.emp_id=works_with.emp_id
WHERE works_with.total_sales>25000
SELECT employee.first_name, employee.last_name, works_with.total_sales
FROM employee, works_with
WHERE employee.emp_id=works_with.emp_id
and works_with.total_sales>25000
解释错误
无法绑定多部分标识符“与.总销售额一起工作”
- 这表明
可以使用。当前选择中没有total\u sales
- 无法将其绑定到所选内容
请参阅
t-SQL
中的forjoin
子句。抱歉,您需要使用join语句,当您要将两个表的结果连接在一起时,将使用此语句。此链接帮助您:join语句将如@etch_45所示。w3f**ls。。。我不推荐那个网站。