尝试在 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 中显示多个表中的值的主要内容,如果未能解决你的问题,请参考以下文章