选择包含来自另一列的值的所有内容

时间:2014-10-28 01:12:52

标签: sql ms-access

我想获取表A中的所有行,其中表A.FID包含表B.primaryID中的文本。

表A

| primaryID |      FID      |
|     1     | Apple (5005)  |
|     2     | Banana (5005) |
|     3     | Apple (2250)  |
|     4     | Banana (1100) |

表B

| primaryID | Etc |
|    5005   | abc |
|    1100   | abc |

结果查询应该给我表A第1,2和4行。

我从下面的查询开始,但没有生成我需要的结果。

 SELECT * FROM TableA WHERE [TableA].[FID] 
 LIKE  “*” & [TableB].[primaryID] & ”*”;

1 个答案:

答案 0 :(得分:1)

我认为这可以在MS Access中使用:

 SELECT ta.*
 FROM TableA as ta INNER JOIN
      TableB as tb
      ON ta.fid LIKE "*" & tb.primaryId & "*";

您需要在FROM子句中包含两个表。

编辑:

实际上,使用exists的公式可能更接近您的想法:

select *
from TableA
where exists (select 1
              from TableB
              where [TableA].[FID] LIKE "*" & [TableB].[primaryID] & "*"
             );