postgresql でクエリを作成しようとしています。データベースには 2 つの関係が含まれています。イギリスの王を含む "kingdom" と、スチュアート王朝の人々を含む "dinasty" です。
「王国」という関係には、王の名前と、王国の始まりと終わりが含まれます。「王朝」という関係には、名前、性別、出生、死亡が含まれます。
私が調べようとしているのは、彼が亡くなったときに最年長だった王です。
私のクエリでは、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 の中にあるものは正しいです。