尝试在SQL中显示多个表中的值

尝试在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 (

我在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 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

中的for
join
子句。抱歉,您需要使用join语句,当您要将两个表的结果连接在一起时,将使用此语句。此链接帮助您:join语句将如@etch_45所示。w3f**ls。。。我不推荐那个网站。