Я пытаюсь сделать запрос с postgresql. База данных содержит два отношения: "царство", в которое входят некоторые английские короли, и "династия", в которой содержатся некоторые люди из дикой природы Стюарта
Отношение "царство" включает в себя имя короля и когда его царство начиналось и заканчивалось. Отношение "династия" включает имя, пол, рождение и смерть.
То, что я пытаюсь запросить, это король, который был самым старым, когда он умер.
По моему запросу я получаю эту ошибку в LINE 3 (NOT IN): subquery has too many columns
Это запрос:
SELECT kingdom.king, dinasty.birth, dinasty.death
FROM kingdom, dinasty
WHERE kingdom.king = dinasty.name AND kingdom.king NOT IN
(
SELECT DISTINCT R1.king, R1.birth, R1.death
FROM
(
SELECT DISTINCT R1.king, D1.birth, D1.death
FROM kingdom AS R1, dinasty AS D1, dinasty AS D2
WHERE R1.king=D1.name
) AS R1,
(
SELECT DISTINCT R1.king, D1.birth, D1.death
FROM kingdom AS R1, dinasty AS D1, dinasty AS D2
WHERE R1.king=D1.name
) AS R2
WHERE R1.death-R1.birth < R2.death-R2.birth
);
То, что находится внутри NOT IN, является правильным.