此错误是什么意思:“ NATURAL联接中使用的列不能具有限定符”

Vic*_*tor 2 sql oracle11g

执行下面的代码后,我得到一个ORA-25155错误

SELECT p.prod_id, prod_name, prod_list_price,quantity_sold,cust_last_name
FROM products p NATURAL JOIN sales s NATURAL JOIN customer c
WHERE prod_id = 148;
Run Code Online (Sandbox Code Playgroud)

Yar*_*lav 5

如评论中所建议,此ORA-25155错误表明您正在限定列名“ p.prod_id”,而不只是“ prod_id”。那就是触发您的错误的原因。

试试这个完全起作用的SQL Fiddle代码。您的查询应为:

SELECT prod_id, prod_name, prod_list_price,quantity_sold,cust_last_name
  FROM products
       NATURAL JOIN sales
       NATURAL JOIN customer
 WHERE prod_id = 148;
Run Code Online (Sandbox Code Playgroud)

一个NATURAL JOIN以上的多个表将联接一对表,然后将第三个表联接到结果,依此类推。NATURAL JOIN语法没有显式的连接谓词,因此此处不使用限定词。