如何在sql中编写连接条件?

时间:2014-04-07 21:56:02

标签: 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 CLASS
  WHERE NSFABSTRACTS.WORD=CLASS.WORD;

错误:Error report: SQL Error: ORA-00905: missing keyword 00905. 00000 - "missing keyword" *Cause:
*Action:

我还尝试在select语句之上添加parathesis,但也没有用。感谢。

1 个答案:

答案 0 :(得分:0)

你需要在“加入”中使用“on”:

CREATE TABLE TEMP(FILEID, WORD, ORG) AS
  SELECT NSFABSTRACTS.WORD, NSFABSTRACTS.FILEID, CLASS.ORG
  FROM NSFABSTRACTS 
  JOIN CLASS ON NSFABSTRACTS.WORD=CLASS.WORD

人们有时使用隐式连接语法,例如

CREATE TABLE TEMP(FILEID, WORD, ORG) AS
  SELECT NSFABSTRACTS.WORD, NSFABSTRACTS.FILEID, CLASS.ORG
  FROM NSFABSTRACTS, CLASS 
  WHERE NSFABSTRACTS.WORD=CLASS.WORD

但不建议用于现代SQL。你把这两种形式混为一谈。