Вы можете попробовать использовать exists
с HAVING
функцией агрегирования условий.
CREATE TABLE T(
Name VARCHAR(5),
Plat int
);
INSERT INTO T VALUES ('Bob',1);
INSERT INTO T VALUES ('Kay',2);
INSERT INTO T VALUES ('Sih',3);
INSERT INTO T VALUES ('Sih',4);
INSERT INTO T VALUES ('Bob1',1);
Запрос 1 :
SELECT *
FROM T t1
WHERE exists(
SELECT 1
FROM T tt
WHERE t1.Name in ('Bob','Sih')
HAVING
SUM(CASE WHEN Name = 'Bob' THEN 1 END) > 0
AND
SUM(CASE WHEN Name = 'Sih' THEN 1 END) > 0
)
Результаты :
| NAME | PLAT |
|------|------|
| Bob | 1 |
| Sih | 3 |
| Sih | 4 |