首页 > 解决方案 > 即使每个标识符都有效,SQL 也拒绝进行连接?(ORA-00904)

问题描述

在无法找到/使​​用我拥有的本地资源后,我只是想问这个问题,所以我来找大家。

我正在尝试根据作业中的问题加入两个表 - ORDERS 和 CUSTOMER

  1. 对于每个订单,列出订单号和订单日期以及下单客户的客户编号、姓氏和名字。

所以我要查找订单号、日期、客户编号和客户全名。

代码是这样的

SELECT ORDERS.ORDR_ORDER_NUMBER, ORDERS.ORDR_ORDER_DATE, ORDERS.ORDR_CUSTOMER_NUMBER, CUSTOMER.CUST_LAST, CUSTOMER.CUST_FIRST
FROM ORDERS, CUSTOMER
WHERE ORDERS.ORDR_CUSTOMER_NUMBER = CUSTOMER.CUST_CUSTOMER_NUMBER;

我在没有表标识符的情况下完成了这段代码,在 ORDERS.ORDR_CUSTOMER_NUMBER 周围加上了引号,两个表的别名,甚至在 SELECT 和 WHERE 中的 ORDR_ 之后都放了一个空格,以表示笑声,但没有任何效果。他们都在标题中不断出现错误(ORA-00904),说 [ORDERS.]ORDR_CUSTOMER_NUMBER 是无效标识符,即使它不应该是。

这也是我正在使用的表格,以防需要帮助

标签: sqloracle

解决方案


无论如何,产生您想要的结果的查询应该采用以下形式:

select
  o.ordr_order_number,
  o.ordr_order_date,
  c.cust_customer_number,
  c.cust_last,
  c.cust_first
from orders o
join customer c on c.cust_customer_number = o.ordr_customer_number

如您所见,如果您使用现代连接语法并且使用表别名(oc),则查询变得更容易阅读和编写。


推荐阅读