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

Posted

技术标签:

【中文标题】尝试在 SQL 中显示多个表中的值【英文标题】:Trying to display values from multiple tables in SQL 【发布时间】:2020-11-21 17:24:34 【问题描述】:

我在 SQL 中有两个表,其中一个包含员工 ID (emp_id) 及其名字和姓氏。另一个表包含员工 ID 及其总销售额。我只想查看总销售额高于 25,000 的那些记录的名字、姓氏及其总销售额。第一个表的名字是employee,第二个表的名字是works_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
);

我收到以下错误:

“消息 4104,第 16 级,状态 1,第 25 行 无法绑定多部分标识符“works_with.total_sales”。”

我该如何解决这个错误?

谢谢

【问题讨论】:

对不起,您需要使用JOIN语句,当您想将两个表的结果连接在一起时使用该语句。此链接可以帮助您:w3schools.com/sql/sql_join.asp 加入声明将按照@etch_45 的建议。 w3f**ls...我不会推荐那个网站。 【参考方案1】:

如果这样写,您的查询仍然有效:

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
);

您的选择失败,因为它没有works_with.total_sales 列。 您可以使用 join 子句将 works_with.total_sales 添加到您的选择中,如下所示:

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

解释错误 The multi-part identifier "works_with.total_sales" could not be bound

这表明works_with.total_sales 在当前选择中不可用。 您无法将其绑定到您的选择。

请参阅https://www.w3schools.com/sql/sql_join.asp 以了解t-SQL 中的join 子句

【讨论】:

【参考方案2】:

根据您的要求,此查询可能会起作用。 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

【讨论】:

【参考方案3】:

您可以加入 bth 表并显示 total_sales 大于 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;

【讨论】:

以上是关于尝试在 SQL 中显示多个表中的值的主要内容,如果未能解决你的问题,请参考以下文章

根据其中一个表中的值从多个表中获取 SQL 结果

从同一个表中的多个列中选择不同的值

sql中如何使一列中的多个重复数据只显示一次, 求大神指导,使得图中的班简名重复的只显示一次。

将多个表中的数据插入到一个表中

sql 问题子查询返回的值不止一个。

将多个工作表中的值复制并粘贴到摘要工作表中