当前位置: 首页 > 面试题库 >

在执行带有USING关键字的JOIN时,选择列表中不能包含限定词

勾海超
2023-03-14
问题内容

我正在看一个没有关于正确答案的解释的实践测试。我很困惑的问题基本上是问为什么以下SQL语句永远无法工作:

SELECT oi.order_id, product_jd, order_date
FROM order_items oi JOIN orders o
USING(order_id);

它给出的答案是:“由于USING子句的列部分在SELECT列表中不能有限定符,因此该语句将不会执行”

有人可以详细说明吗?我很沮丧。


问题答案:

它在抱怨oi预选赛:

SELECT oi.order_id, product_jd, order_date
       ^^^

Oracle不允许将限定词与联接一起使用using。最明确的解决方法是使用常规联接:

SELECT oi.order_id, product_jd, order_date
FROM order_items oi 
JOIN orders o ON o.order_id = oi.order_id

您也可以省略限定词。该using语句告诉Oracle,即使有两个称为的字段order_id,它们都相等:

SELECT order_id, product_jd, order_date
FROM order_items oi JOIN orders o
USING(order_id)


 类似资料:
  • 我有以下代码: 它引发了一个异常: 结果我只想得到代码。

  • 问题内容: 有没有一种方法可以选择其中一列仅包含,但包含任意数量的预定义值的行? 我一直在使用它,但是它返回的行中我的列至少包含一个值(我知道这正是它应该做的)。 但我正在寻找一种方法,仅选择在关键字列中仅包含我的关键字的行。 关键字示例: 使用上述关键字,我希望返回前两个结果,而不是后两个: 我的专栏包含用逗号分隔的适用于该产品行的所有关键字的列表。 问题答案: 由于您将列表存储为包含逗号分隔列

  • 问题内容: 我想选择不具有VAL =’current’的任何行的唯一ID(与多行关联)。 例如,在这样的表中: 我希望它返回ID 23,因为它没有VAL =’current’的行。请注意,在此表中,主键(PK)是唯一的,但ID不是唯一的(因此需要使用DISTINCT或GROUP BY)。 这是我在PHP中拥有的东西: 这就是它的总要旨。如您所见,完成此任务需要两个SQL语句。有没有更短的方法可以做

  • 问题内容: 我有一个看起来像这样的Pandas DataFrame: 而且我想提取仅包含那些行的DataFrame,其中包含的任何行。因此结果应如下所示: 最简单的方法是什么? 供测试用: 问题答案: IIUC重新创建您的df,然后使用with应该比

  • 问题内容: 给定此数据框,如何仅选择“ Col2”等于的行? 结果应该是这样的: 问题答案: 请尝试以下操作:

  • 问题内容: Java是否具有在休眠状态下打开会话时可以使用的using语句? 在C#中,它类似于: 因此,对象超出范围并自动关闭。 问题答案: Java 7引入了自动资源块管理,该功能将该功能引入了Java平台。Java的早期版本没有任何相似之处。 例如,您可以使用通过以下方式实现的任何变量: 由流实现的Java 接口自动扩展,因此您可以像在C#块中使用流一样使用块中的流。这等效于C#的。 从5.