根据在table-2和table-3上定义的约束将新行插入到table-1中

时间:2016-03-16 19:08:46

标签: sql windows-7 visual-foxpro

我想基于等式约束d:\dl将新行附加到table-1 lower(rdl.subdir) = lower(tr.n1),其中rdl和tr将是f:\rdlf:\tr的预期别名分别表。  在VFP9中运行以下命令时,我收到function name is missing ).消息:

INSERT INTO d:\dl SELECT * FROM f:\rdl WHERE (select LOWER(subdir)FROM f:\rdl in (select LOWER(n1) FROM f:\tr))

我使用in语法,而不是基于别名的相等语句lower(rdl.subdir) = lower(tr.n1),因为我不知道在此命令中定义别名的位置。

1 个答案:

答案 0 :(得分:2)

通常,获得此类工作的最佳方法是首先使查询工作并为您提供所需的结果,然后在INSERT中使用它。

通常,在SQL命令中,您可以通过将别名放在表名之后来分配别名,无论是否包含关键字AS。在这种情况下,您不需要别名,因为您想要的那些与表名相同,这是默认值。

如果您展示的是您的确切代码并且您在VFP中运行它,那么第一个问题就是您错过了行之间的延续字符。

你肯定也做了太多的工作。试试这个:

INSERT INTO d:\dl ;
  SELECT * ;
    FROM f:\rdl ;
      JOIN f:\tr ;
        ON LOWER(rdl.subdir) = LOWER(tr.n1)