Я пытаюсь найти все наборы двух записей в моей «истории», чтобы две записи не соединялись ни с одной из одних и тех же записей определенного типа в «символ» (через «участник», объект моста). Вот запрос, как я написал:SQLite: использование других таблиц для исключения результатов из самосоединения
SELECT str1._id, str2._id
FROM story AS str1, story AS str2
WHERE str1._id < str2._id
AND (SELECT COUNT(chr_id) FROM
(SELECT chr_id
FROM participant
WHERE isparent = 0
AND str_id = str1._id
INTERSECT
SELECT chr_id
FROM participant
WHERE isparent = 0
AND str_id = str2._id)) = 0;
Внутренний запрос и подсчет запросов вокруг него, функция, как ожидается, при использовании на своих собственных с str1._id и str2._id заменены фактическими значениями, но весь запрос все вместе, кажется, дает TRUE для окончательного условия в тех случаях, когда он не должен. Это заставляет меня подозревать, что проблема связана с псевдонимом, но я не уверен, что изменить, чтобы исправить это.
EDIT: Вот выборочные данные в таблице участников, которые я использую, чтобы проверить
str_id chr_id isparent
1 1 1
1 2 1
1 3 0
2 1 1
2 3 0
3 4 1
3 3 1
3 5 0
3 6 0
3 7 0
Вот результат запроса дает
_id _id
1 2
1 3
2 3
А вот выход я ожидал
_id _id
1 3
2 3
Вы не указали таблицу 'story', но с таблицей, содержащей' 1', '2',' 3', этот запрос работает для меня. –