MS Query – 列1上的外连接LIKE列2?

任何人都可以帮助我创build一个左外部联接语句工作在MS Query?

基于Hogan的回答,以及这篇MSDN文章 ,我已经编辑了我的SQL语句到这个(下面),但MS Query仍然不满意。

SELECT CO.MATERIALS1 AS 'Material', CO.`SIZES#1` AS 'Size', CO.`TOOLS#1` AS 'Tool', IR.`BODY /JAW` AS 'BodyJaw', IR.PN AS 'PartNo' FROM {oj `COMBINATIONS$` CO LEFT OUTER JOIN `'INSERTS REVIEW$'` IR ON [IR.TOOL LIKE '% ' CO.`TOOLS#1` ' %'] AND [IR.SIZE LIKE '% ' CO.`SIZES#1` ' %'] AND [IR.MATERIAL LIKE '% ' CO.MATERIALS1 ' %']} 

MS Query的语法似乎与我过去一直使用的标准SQL / T-SQL略有不同,而且我正在努力弄清楚它想要什么。

上面的查询给了我一个期待一个连接操作符的错误:

在这里输入图像说明

我试图删除花括号{ } ,它抱怨表oj:

在这里输入图像说明

我试图删除oj引用,它抱怨无效包围:

在这里输入图像描述

而在挫折中,我试图删除所有的括号,这使得它抱怨缺less操作语法错误:

在这里输入图像描述

除此之外,我在结构,转义字符,连接字符等方面尝试了一些变化。我觉得我只是在MS Query中旋转我的轮子,并希望有人更精通MSQ的细微差别可以指出我要出错的地方,帮助我做好。


要清楚,这是我期望实现的。

鉴于这两个表:
组合表 插入表格

我想在CO表上进行左连接,匹配IR表上的大小,工具和材质:
比赛

哪个应该产生这个结果:
期望的结果


另外,我意识到这将返回匹配“P12” “JP12”上的“P12” 不是所期望的行为,但是我觉得一旦得到这个基本查询工作,我就可以解决这个问题。 如果需要的话,我可以在该字段中的每个logging中添加一个前导或尾随的“/”,这样我就可以匹配“LIKE”%/'“或类似的东西。

在MS查询下面会给你确切的结果。我已经试过了样本数据和屏幕截图。

 SELECT CO.TOOL, CO.Material, CO.SIZE, IR.PN , IR.`BODY/JAW` FROM `G:\test1.xlsx`.`COMBINATIONS$` CO LEFT JOIN `G:\test1.xlsx`.`'INSERTS REVIEW$'` IR ON CO.TOOL=IR.TOOL AND ((IR.MATERIAL Like '%'+CO.Material+'%')) AND ((IR.SIZE Like '%'+CO.Size+'%')) 

testing数据显示在下面的屏幕截图中。

在这里输入图像描述 在这里输入图像说明

屏幕截图包含ms查询和你想要的结果。

在这里输入图像说明

在这里输入图像描述

这里是一个“外部”join通知标准是连接的一部分,而不是其中的一部分。

 SELECT CO.MATERIALS1 AS 'Material', CO.`SIZES#1` AS 'Size', CO.`TOOLS#1` AS 'Tool', IR.`BODY /JAW` AS 'BodyJaw', IR.PN AS 'PartNo' FROM `COMBINATIONS$` CO LEFT JOIN `'INSERTS REVIEW$'` IR ON [IR.TOOL LIKE '% ' CO.`TOOLS#1` ' %'] AND [IR.SIZE LIKE '% ' CO.`SIZES#1` ' %'] AND [IR.MATERIAL LIKE '% ' CO.MATERIALS1 ' %'] 

将这个工作: 编辑

 SELECT CO.MATERIALS1 AS 'Material', CO.`SIZES#1` AS 'Size', CO.`TOOLS#1` AS 'Tool', IR.`BODY /JAW` AS 'BodyJaw', IR.PN AS 'PartNo' FROM {oj `COMBINATIONS$` CO LEFT OUTER JOIN `'INSERTS REVIEW$'` IR ON [IR.TOOL LIKE '%' + CO.`TOOLS#1` + '%'] AND [IR.SIZE LIKE '%' + CO.`SIZES#1` + '%'] AND [IR.MATERIAL LIKE '%' + CO.MATERIALS1 + '%']} 

信贷霍根和布赖恩都。

我不得不做一些调整,但结束了以下半工作查询。 在MS Query很开心的意义上半工作,并创build了预期的结果表,但不匹配(或返回)右表中的任何内容。 (所有的行都是空的)

不知道是否应该将这个问题标记为已回答,并开始一个新的问题,说明为什么它没有返回预期的数据。
这变成了一个变色龙的问题 ,但它也没有技术上的答案(代码不能按预期工作)。


据我所知 – 霍根是正确的,大括号{}需要被删除。 我也发现我必须删除所有的括号[]

布赖恩是正确的连接字符+正在被需要。

所以我结束了这个半工作的SQL语句:

 SELECT CO.MATERIALS1 , CO.`SIZES#1` , CO.`TOOLS#1` , IR.`BODY /JAW` , IR.PN FROM `COMBINATIONS$` CO LEFT OUTER JOIN `'INSERTS REVIEW$'` IR ON IR.TOOL LIKE '%' + CO.`TOOLS#1` + '%' AND IR.SIZE LIKE '%' + CO.`SIZES#1` + '%' AND IR.MATERIAL LIKE '%' + CO.MATERIALS1 + '%'