我想将ctw.code1
和dl.name
字段的过滤行列表复制到一个 excel 文件中,该文件主要基于来自不同目录的两个表中lower(subdir)
字段的相等性创建。我不确定Inner Join
或Select
命令更适合此任务。目前我正在尝试使用Select
,但 VFP 显示Subdir is not unique and must be qualified
错误。
SELECT ctw.code1, dl.name FROM e:ctwd ctw, d:del dl where (ctw.lower(subdir) = dl.lower(subdir) AND (ctw.code1 >=30 OR ctw.code2 >= 30))
INNER JOIN 不是命令。它是 SELECT 命令的一个子句。看起来您的问题是您过早地应用了函数。此版本应该有效:
SELECT ctw.code1, dl.name
FROM e:ctwd ctw, d:del dl
WHERE lower(ctw.subdir) = lower(dl.subdir)
AND (ctw.code1 >=30 OR ctw.code2 >= 30)
也就是说,如果您使用的是 VFP 5 或更高版本,则最好使用 INNER JOIN 来匹配不同表中的记录,因为这可以让其他人更轻松地了解查询的工作原理。该版本如下所示:
SELECT ctw.code1, dl.name
FROM e:ctwd ctw
JOIN d:del dl ON lower(ctw.subdir) = lower(dl.subdir)
WHERE (ctw.code1 >=30 OR ctw.code2 >= 30)
请注意,INNER 关键字是可选的;如果需要,可以将其添加到 JOIN 前面。