选择包含另一列中的值的所有信息

问题描述:

我想从Table A中获取表A.FID包含Table 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] & ”*”; 

我认为这将在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] & "*" 
      );