访问加入没有不同的标识符

时间:2012-05-22 20:49:31

标签: sql join

我有两个表没有用于加入的不同标识符。但是,Table1有一个字段(里程碑),其中包含一个包含格式为999ABCD的文本字符串。 Table2有一个Subject字段,它也包含这些信息;但是,它位于随机位置,作为记录的“主题”字段中标题的一部分。

有没有办法根据Table1.Milestone中的值连接两个表(Table1.Milestone到Table2.Subject)并在Table2.Subject中搜索匹配的文本?

谢谢!

2 个答案:

答案 0 :(得分:0)

我不确定这是否会起作用,但可能会让你开始朝着正确的方向前进:

select * from Table1 T1
join Table2 T2
on T2.Subject LIKE '%' + T1.Milestone + '%'

我不建议做这样的连接,即使它确实有效。

答案 1 :(得分:0)

我不使用Access,但我已经在MS SQL中为你工作了。如果你能在Access中找到与CHARINDEX类似的功能,那么这对你有用:

设定:

DECLARE @table1 TABLE (milestone varchar(20))
DECLARE @table2 TABLE (subj varchar(1000), details varchar(1000))

INSERT INTO @table1 VALUES ('999ABCD')
INSERT INTO @table1 VALUES ('999XYZ')

INSERT INTO @table2 VALUES ('Subject is 999ABCD', 'I should join only to 999ABCX')
INSERT INTO @table2 VALUES ('Subject 999XYZ is me', 'I should join only to 999xyz')
INSERT INTO @table2 VALUES ('Subject zzzzz is me', 'Nobody gets me')

实际查询:

SELECT *
from @table1 t1
JOIN @table2 t2 ON CHARINDEX(milestone, subj) > 0

这是输出:

milestone   subj    details
999ABCD Subject is 999ABCD  I should join only to 999ABCX
999XYZ  Subject 999XYZ is me    I should join only to 999xyz

希望有所帮助!

戴夫