请耐心等待我,我是Access和SQL的新手。
我要做的是编写一个SQL查询来过滤两个表 - 一个包含分为两列的单词,另一个包含文本。基本上,我想要的是一个新表格,它为我提供了两列单词与文本列的所有完全匹配。
这是一个类似的数据库,可以模拟我想要的结果:
Table A:
FirstName: LastName:
John Doe
Jane Doe
Josh Smith
James Jones
David Johnson
Table B:
FullName:
Jake Davidson
Mike Peters
Jason James
John Michael Smith
Query Result:
FirstName: LastName: FullName:
John Doe John Michael Smith
Josh Smith John Michael Smith
James Jones Jason James
(注意大卫 - 戴维森的比赛没有出现。即我只想要完全匹配)
请帮助我填补空白:
SELECT TableA.FirstName,TableA.LastName, TableB.FullName
FROM TableA,TableB
WHERE TableB.FullName LIKE (has an exact match with TableA.FirstName--not sure what to put )
UNION
SELECT TableA.FirstName,TableA.LastName, TableB.FullName
FROM TableA,TableB
WHERE TableB.FullName LIKE (has an exact match with TableA.LastName--not sure what to put)
;
答案 0 :(得分:0)
这将取决于你想要用超过两个名字的FullNames做什么,比如“John Jacob Smith”,但是,假设你想让它忽略中间词[s], 然后尝试
Select firstname, lastname, fullname
from tableA a
Join tableb f
On f.firstname = Mid(a.fullname, 1, InStr(a.fullname, " ")-1)
Join tableb l
On l.lastname = Mid(a.fullname, InStrRev(a.FullNamee, " ")+1)
答案 1 :(得分:0)
以下是一种将FullName
与Firstname
和LastName
进行比较的方法:
select a.Firstname, a.LastName, b.FullName
from tableA as a inner join
tableB as b
on instr(' '&b.FullName&' ', ' '&a.FirstName&' ') > 0 and
instr(' '&b.FullName&' ', ' '&a.Lastname&' ') > 0
它假设名称的分隔符是一个空格(如您的示例所示)。比较将空格附加到FullName
的开头和结尾,然后查找带空格的名字和姓氏。