0

嗨,我正在使用 sql plus,我需要从 4 个表中选择 5 列并显示结果。这是我使用的代码和我得到的错误。

SELECT CustomerID, OrderID, AircraftID, Quantity, TotalCost 
FROM Customer_Table, Order_Table, Aircraft_Table, Orderline;

第 1 行出现错误:ORA-00918:列定义不明确

获取这些列并从多个表中显示它们的代码是什么。请帮助解决这个问题。

4

3 回答 3

1

原因是您尝试执行连接两个或多个表的 SQL 语句,其中两个表中都存在同名的列。

以这个 SQL 查询为例

SELECT suppliers.supplier_id, quantity
FROM suppliers, orders
WHERE suppliers.supplier_id = orders.supplier_id;

由于供应商和订单表中都存在supplier_id 列,因此您需要在该列前面加上表名,如下所示:

此外,您需要在它们之间链接您的表格。如果我以上面的例子为例,你应该做这种事情

WHERE suppliers.supplier_id = orders.supplier_id;

表示您将表格suppliersorders按列链接的表格supplier_id

本文可能会帮助您了解您的问题: http ://www.sitepoint.com/understanding-sql-joins-mysql-database/

于 2013-04-06T00:56:41.720 回答
0

我不知道 SQL plus,但在大多数 SQL 变体中,您应该指定一个表名,然后是一个列名。例如 SELECT Customer_Table.CustomerID ......这将消除结果投影中应该使用哪一列的歧义。

于 2013-04-06T00:53:36.590 回答
0

该错误意味着这些表中存在一个或多个具有相同名称的列。这就是为什么它不知道从哪个表中选择哪一列。如果您可以指定表名然后指定列,我认为这应该消失。

于 2013-04-06T00:55:26.203 回答