问题描述
我想在带有连接的存储过程中使用该表。我尝试在查询中使用别名,[],`` 但似乎没有任何效果。有人能帮我解决这个错误吗!
解决方法
不要使用 order
作为列别名。它是一个 SQL 关键字。我只会使用o
:
select o.*,od.*
from orders o join
order_details od
on o.orderid = od.orderid
where year(o.orderdate) = @orderyear;
注意事项:
- 您的
JOIN
条件为ProductId
。然而,这是非常可疑的。通常这样的连接在订单 id 上。事实上,如果有明细表,ProductId
不属于Orders
(通常)。 - 不要在名称中使用空格来定义表。这只会使引用名称变得困难。
-
orderdate
似乎没有定义,因为它有一个红色下划线。 - 我不推荐
select *
。一方面,您将拥有重复的列名。更重要的是,您希望明确说明此代码返回的内容,尤其是在存储函数或过程中。