哪个查询适合比较下面列出的两个表,但是位置(table1)中只有部分字符串与Location(table2)匹配。
Location(table1) Location(table2)
india- north USxcs
India-west Indiaasd
India- east Indiaavvds
India- south Africassdcasv
US- north Africavasvdsa
us-west UKsacvavsdv
uk- east Indiacascsa
uk- south UScssca
Africa-middle Indiacsasca
Africa-south Africaccc
Africa-east UKcac
只有位置(table1)的前两个字符和位置(table2)的前两个字符应匹配。请帮助
位置(table1)的任何N(连续)字符和位置(table2)的任何N(连续)字符应匹配。
答案 0 :(得分:0)
您可以使用LIKE
进行模式匹配。下面的示例显示了table1的位置列表,该列表具有来自table2
在MSSQL中:
SELECT *
FROM location_table2 a, location_table1 b
WHERE b.location LIKE a.Location + '%'
在MySQL中:
SELECT *
FROM location_table2 a, location_table1 b
WHERE b.location LIKE CONCAT(a.Location, '%')
在MSAccess中:
SELECT *
FROM location_table2 a, location_table1 b
WHERE a.Location LIKE LEFT(b.Location, InStr(b.Location, '-') -1) & '%'
答案 1 :(得分:0)
在MSAccess中,我会创建2个新查询,引入一个新列,每个表中只有前两个字母的位置字段,然后添加第三个查询加入这两个字段。
qry_table1:
select location as location1, left(location,2) as loc1 from table1
qry_table2:
select location as location2, left(location,2) as loc2 from table2
qry_join:
select location1, location2
from qry_table1 inner join
qry_table2 on
qry_table1.loc1 = qry_table2.loc2