У меня очень узкая таблица: user_id, ancestry.
Столбец user_id является самоочевидным.
Столбец "Родословная" содержит страну, откуда приветствуют предки пользователей.
Пользователь может иметь несколько строк в таблице, так как пользователь может иметь предков из разных стран.
Мой вопрос заключается в следующем: как выбрать пользователей, чьи предки родом из нескольких указанных стран?
Например, покажите мне всех пользователей, у которых есть предки из Англии, Франции и Германии, и верните 1 строку для каждого пользователя, которая соответствовала этим критериям.
Что такое SQL?
user_id ancestry
--------- ----------
1 England
1 Ireland
2 France
3 Germany
3 Poland
4 England
4 France
4 Germany
5 France
5 Germany
В случае данных выше, я ожидаю, что результат будет "4", поскольку user_id 4 имеет предков из Англии, Франции и Германии.
Спасибо заранее.
P.S. Чтобы уточнить: Да, столбцы user_id/ancestry создают уникальную пару, поэтому страна не будет повторяться для данного пользователя.
P.P.S. Я ищу пользователей, которые родом из всех трех стран - Англии, Франции и Германии (и страны произвольны).
P.P.P.S. Я не ищу ответы, относящиеся к определенной СУБД. Я хочу ответить на эту проблему "в целом".
Я доволен регенерацией предложения where для каждого предоставленного запроса, генерируя предложение where, которое может выполняться программно (например, я могу построить функцию для построения предложения WHERE/FROM - WHERE).