2017-02-06 2 views
1

У меня есть таблица, таблица АSQL JOIN на всех

Key  String 
1  Val1 
1  Val2 
2  Val1 
3  Val1 
3  Val2 

, что я хотел бы присоединиться в таблице B

Key  String 
1  Val1 
2  Val2 

, где я хотел бы получить только значения в таблице А которые соответствуют всем содержимым таблицы A. Результат в этом примере даст мне ключи 1 & 3 из таблицы. Это единственные записи, где есть точное совпадение с таблицей B.

Как написать этот SQL, используя SQL Server?

+0

Обновлено мой вопрос – duckmike

ответ

1

Попробуйте это:

SELECT a.Key 
FROM tableA AS a 
JOIN tableB AS b ON a.Key = b.Key AND a.String = b.String 
GROUP BY a.Key 
HAVING COUNT(DISTINCT a.String) = (SELECT COUNT(DISTINCT(String)) 
            FROM TableB)