0

我需要在遗留 Foxpro 应用程序中重做 sql 语句,并且根本不明白它是否有意义。语法有点特定 - 它通过一些连接将临时表中的数据提取到同一个临时表(覆盖)中。

SELECT aa.*,b.spa_date FROM (ALIAS()) aa INNER JOIN jobs ON aa.seq=jobs.seq ;
LEFT JOIN job2 ON jobs.job_no=job2.rucjob;
left join jobs b on b.job_no=job2.job_no;
WHERE jobs.qty1<>0 INTO CURSOR (ALIAS())

由于从联接表( spa_date )中仅添加了一个字段,因此在 2 个左联接中是否存在任何点,或者我遗漏了一些东西。是不是相当于

SELECT aa.*,jobs.spa_date FROM (ALIAS()) aa INNER JOIN jobs ON aa.seq=jobs.seq ;
WHERE jobs.qty1<>0 INTO CURSOR (ALIAS())
4

1 回答 1

0

它们是不同的,因为 b.spa_date 来自第二个左连接。如果没有左连接,您可能会丢失过滤的行。

您需要知道原始查询的意图,并可能重写它以使其更有意义,但我会说这两个查询是不同的。

于 2012-12-06T14:12:01.770 回答