OleDB JOIN 语法不正确
OleDB JOIN Syntax Not Correct
我最近在 Whosebug () 上问了一个关于查询语句在 MySQL
中不起作用的问题。我现在有一个非常相似的问题,这次使用 OleDB
我试图使用连接来包含具有 0
作为条目的字段,但不是 select table 结果。
上述问题中发布的新外观 MySQL
查询作为已接受的答案可以顺利运行。然而,我写的 OleDB
对应物几乎没有做同样的事情。这有点混乱,因为 table 没有很好地命名(我没有创建这个数据库)并且我遇到了一个简单的语法错误;
myQuery.CommandText = "SELECT s.scm_num, s.scm_name, c.cr3_text, q.qsp_value, s.scm_bprefix, s.scm_nxbnum FROM qspreset q INNER JOIN sdccomp s LEFT OUTER JOIN cntref3 c ON s.scm_cntref3=c.cr3_id AND q.qsp_relat=s.scm_invtype AND q.qsp_what=13";
我在这里查询另一个 table 以及 LEFT OUTER JOIN
中涉及的两个,我相信那是我犯错误的地方。
加入条件需要与加入
myQuery.CommandText =
"SELECT s.scm_num, s.scm_name, c.cr3_text, q.qsp_value, s.scm_bprefix, s.scm_nxbnum
FROM qspreset q
INNER JOIN sdccomp s
on q.qsp_relat = s.scm_invtype AND q.qsp_what = 13
LEFT OUTER JOIN cntref3 c
ON s.scm_cntref3 = c.cr3_id";
q.qsp_what = 13可以移动到
正好喜欢这个风格
对于 MSSQL T-SQL 和一些具有大量连接的查询,我通过将 where 条件向上移动到连接中获得了更高效的查询计划。过滤器发生得早而不是最后。
如果您不相信可以在联接中加入硬值,请参阅 SQLfiddle
我最近在 Whosebug (MySQL
中不起作用的问题。我现在有一个非常相似的问题,这次使用 OleDB
我试图使用连接来包含具有 0
作为条目的字段,但不是 select table 结果。
上述问题中发布的新外观 MySQL
查询作为已接受的答案可以顺利运行。然而,我写的 OleDB
对应物几乎没有做同样的事情。这有点混乱,因为 table 没有很好地命名(我没有创建这个数据库)并且我遇到了一个简单的语法错误;
myQuery.CommandText = "SELECT s.scm_num, s.scm_name, c.cr3_text, q.qsp_value, s.scm_bprefix, s.scm_nxbnum FROM qspreset q INNER JOIN sdccomp s LEFT OUTER JOIN cntref3 c ON s.scm_cntref3=c.cr3_id AND q.qsp_relat=s.scm_invtype AND q.qsp_what=13";
我在这里查询另一个 table 以及 LEFT OUTER JOIN
中涉及的两个,我相信那是我犯错误的地方。
加入条件需要与加入
myQuery.CommandText =
"SELECT s.scm_num, s.scm_name, c.cr3_text, q.qsp_value, s.scm_bprefix, s.scm_nxbnum
FROM qspreset q
INNER JOIN sdccomp s
on q.qsp_relat = s.scm_invtype AND q.qsp_what = 13
LEFT OUTER JOIN cntref3 c
ON s.scm_cntref3 = c.cr3_id";
q.qsp_what = 13可以移动到
正好喜欢这个风格
对于 MSSQL T-SQL 和一些具有大量连接的查询,我通过将 where 条件向上移动到连接中获得了更高效的查询计划。过滤器发生得早而不是最后。
如果您不相信可以在联接中加入硬值,请参阅 SQLfiddle