2014-10-28 5 views
0

Я хочу получить все строки из таблицы 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 | 

Результат запроса должен дать мне строки Таблица А 1, 2 и 4.

Я начал с запроса ниже, но сделал не генерировать результат, который мне нужен.

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

ответ

1

Я думаю, что это будет работать в MS Access:

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

Вы должны иметь обе таблицы в пункте FROM.

EDIT:

На самом деле, препарат с использованием exists может быть ближе к тому, что вы думаете:

select * 
from TableA 
where exists (select 1 
       from TableB 
       where [TableA].[FID] LIKE "*" & [TableB].[primaryID] & "*" 
      ); 
Смежные вопросы