gpt4 book ai didi

SQL:使用 vs on

转载 作者:搜寻专家 更新时间:2023-10-30 21:56:30 25 4
gpt4 key购买 nike

问题

让我给你查询中使用的表的描述

desc takes;
Name Null Type
--------- -------- -----------
ID NOT NULL VARCHAR2(5)
COURSE_ID NOT NULL VARCHAR2(8)
SEC_ID NOT NULL VARCHAR2(8)
SEMESTER NOT NULL VARCHAR2(6)
YEAR NOT NULL NUMBER(4)
GRADE VARCHAR2(2)
------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
desc course;
Name Null Type
--------- -------- -----------------
COURSE_ID NOT NULL VARCHAR2(8)
TITLE VARCHAR2(50)
DEPT_NAME VARCHAR2(20)
CREDITS NUMBER(2)
-------------------------------------

查询 1:

select course.COURSE_ID from course join takes on course.COURSE_ID=takes.COURSE_ID;

它工作正常。

但我对其他以某种方式相关的查询有疑问。

查询 2:

select course.COURSE_ID from course join takes using(COURSE_ID);

我得到的错误是

Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-25154: column part of USING clause cannot have qualifier 25154. 00000 - "column part of USING clause cannot have qualifier" *Cause: Columns that are used for a named-join (either a NATURAL join or a join with a USING clause) cannot have an explicit qualifier. *Action: Remove the qualifier.

虽然如果我在选择后更改 course.course_ID 以外的属性,例如course.title 为:

select course.title from course join takes using(COURSE_ID);

我得到了预期的输出,有什么错误吗?

最佳答案

错误消息说明了一切:使用 USING (COURSE_ID) 时,您的行不包含 course.COURSE_IDtakes.COURSE_ID不再是了,但只是一个 COURSE_ID

这是无效的:

select course.COURSE_ID from course join takes using(COURSE_ID);

这是有效的:

select COURSE_ID from course join takes using(COURSE_ID);

关于SQL:使用 vs on,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43956604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com