Sql 如何将两个或多个内部联接拆分为多个select语句

Sql 如何将两个或多个内部联接拆分为多个select语句,sql,Sql,在撰写本文时,我使用的SQL方言(Lianja/VFP)不支持多个内部连接语句。如何将上述SQL语句拆分为多个select语句作为解决方法?您不需要 您可以在本地引入所有相关的表,然后自己处理联接,但这首先是垃圾、低效的,而且是您绝对不应该做的事情 如果您的SQL数据库不支持多个联接(我会发现这很了不起),那么您需要找到另一个数据库——认真地说。现在不要为了一个糟糕的决定而让自己痛苦多年……实际上Lianja支持多个连接,只是语法有点奇怪 试试这样的东西,它应该会起作用 SELECT e.cem

在撰写本文时,我使用的SQL方言(Lianja/VFP)不支持多个内部连接语句。如何将上述SQL语句拆分为多个select语句作为解决方法?

您不需要

您可以在本地引入所有相关的表,然后自己处理联接,但这首先是垃圾、低效的,而且是您绝对不应该做的事情


如果您的SQL数据库不支持多个联接(我会发现这很了不起),那么您需要找到另一个数据库——认真地说。现在不要为了一个糟糕的决定而让自己痛苦多年……

实际上Lianja支持多个连接,只是语法有点奇怪

试试这样的东西,它应该会起作用

SELECT e.cempnoee, e.cempname, e.cempemail, s.csrvposition, s.csrvbranch, s.csrvcostcentr, b.cbrndesc, p.caddnophoneh FROM emas e 
        inner join esrvc s on e.cempnoee = s.csrvnoee 
        inner join cbranch b on s.csrvbranch = b.cbrncode
        inner join eaddrs p on e.cempnoee = p.caddnoee

与Lianja的作者通信后,拆分SQL语句工作:

SELECT emas.cempnoee, emas.cempname,;
       emas.cempemail, esrvc.csrvposition,;
       esrvc.csrvbranch, esrvc.csrvcostcentr,;
       cbranch.cbrndesc, eaddrs.caddnophoneh;
FROM emas INNER JOIN esrvc ON emas.cempnoee = esrvc.csrvnoee,;
esrvc INNER JOIN cbranch ON esrvc.csrvbranch = cbranch.cbrncode,;
emas INNER JOIN eaddrs ON emas.cempnoee = eaddrs.caddnoee

Lianja now(至少从2017年2月起,版本3.2)以VFP、SQL Server等处理的方式处理连接。

我尝试了这种语法,但没有给出正确的结果。我猜这是Lianja需要解决的问题。@dandyling这很奇怪,因为在文档中他们展示了一个多连接的示例。是的,也许他们必须努力:p
SELECT emas.cempnoee, emas.cempname, emas.cempemail, esrvc.csrvposition, esrvc.csrvbranch, esrvc.csrvcostcentr FROM emas inner join esrvc on emas.cempnoee = esrvc.csrvnoee into cursor esc
SELECT *, cbranch.cbrndesc FROM esc inner join cbranch on esc.csrvbranch = cbranch.cbrncode into cursor esbc
SELECT *, eaddrs.caddnophoneh FROM esbc inner join eaddrs on esbc.cempnoee = eaddrs.caddnoee