У меня есть следующий узел таблицы:SQL Filter Records On Список идентификаторов
PersonPhoto
+----+----------+---------+
| Id | PersonId | PhotoId |
+----+----------+---------+
| 1 | 10 | 5 |
| 2 | 11 | 8 |
| 3 | 12 | 28 |
| 4 | 10 | 15 |
| 5 | 10 | 28 |
| 6 | 12 | 15 |
+----+----------+---------+
Я пытаюсь фильтровать таблицу только возвращать PHOTOID на основе списка PersonId в
Например
Я хотел бы получить все идентификаторы фотографий, в которых есть пользователи 10 и 12, связанные с ними. Используя приведенную выше таблицу, которая должна возвращать следующие фотографии иды
15 и 28 ..
На данный момент мои усилия возвращающимся 15, 28, 5 - Однако я не хочу, 5 должны быть возвращены, потому что Person Id 12 не связан с фотографией ид 5
Вот что я уже пробовал:
select distinct pe.PhotoId
from PersonPhoto AS pe
where pe.PersonId IN (10, 12)
GROUP BY pe.PhotoId
select pp.PersonId, pp.PhotoId from PersonPhoto AS pp
where pp.PersonId IN (10, 12)
GROUP BY pp.PersonId, pp.PhotoId
HAVING COUNT(DISTINCT pp.PhotoId) = 1
Есть идеи?
Я удалил несовместимые теги базы данных. Пожалуйста, пометьте базу данных, которую вы действительно используете. –
@Somango Пожалуйста, ознакомьтесь с подробными ответами ниже. –