如何在sql中编写连接条件?
我正在尝试连接我的两个表并创建一个新表。这两个现有的表类似于:NSFABSTRACTS(FILEID,WORD)和CLASS(WORD,ORG)。我正在尝试生成一个新表new(FILEID、WORD、ORG)。下面是我的代码,但它给了我一个错误消息如何在sql中编写连接条件?,sql,oracle,create-table,Sql,Oracle,Create Table,我正在尝试连接我的两个表并创建一个新表。这两个现有的表类似于:NSFABSTRACTS(FILEID,WORD)和CLASS(WORD,ORG)。我正在尝试生成一个新表new(FILEID、WORD、ORG)。下面是我的代码,但它给了我一个错误消息 CREATE TABLE TEMP(FILEID, WORD, ORG) AS SELECT NSFABSTRACTS.WORD, NSFABSTRACTS.FILEID, CLASS.ORG FROM NSFABSTRACTS JOIN C
CREATE TABLE TEMP(FILEID, WORD, ORG) AS
SELECT NSFABSTRACTS.WORD, NSFABSTRACTS.FILEID, CLASS.ORG
FROM NSFABSTRACTS JOIN CLASS
WHERE NSFABSTRACTS.WORD=CLASS.WORD;
错误:错误报告:
SQL错误:ORA-00905:缺少关键字
90500000-“缺少关键字”
*原因:
*操作:
我还尝试在select语句的顶部添加意合,但也不起作用。谢谢。您需要使用“on”和“join”:
人们有时使用隐式连接语法,例如
CREATE TABLE TEMP(FILEID, WORD, ORG) AS
SELECT NSFABSTRACTS.WORD, NSFABSTRACTS.FILEID, CLASS.ORG
FROM NSFABSTRACTS, CLASS
WHERE NSFABSTRACTS.WORD=CLASS.WORD
但这不建议用于现代SQL。这两种形式有点混淆。使用
JOIN
时,需要在上使用指定连接条件,而不是在WHERE子句中。JOIN可以通过两种方式生成:1。您可以在from子句中使用表名,在表名之间使用逗号,在where子句中使用相等条件,例如:从NSFABSTRACTS中选择NSFABSTRACTS.WORD、NSFABSTRACTS.FILEID、CLASS.ORG、CLASS where NSFABSTRACTS.WORD=CLASS.WORD;2.或者通过在from子句中使用“join”关键字,例如:从NSFABSTRACTS上的NSFABSTRACTS join类中选择NSFABSTRACTS.WORD、NSFABSTRACTS.FILEID、CLASS.ORG;
CREATE TABLE TEMP(FILEID, WORD, ORG) AS
SELECT NSFABSTRACTS.WORD, NSFABSTRACTS.FILEID, CLASS.ORG
FROM NSFABSTRACTS, CLASS
WHERE NSFABSTRACTS.WORD=CLASS.WORD