Próbuję wykonać zapytanie z postgresql. Baza zawiera dwie relacje: „Królestwo”, który zawiera kilka angielskich królów, i „dinasty”, który zawiera kilka osób z Dinasty stuartSQL: podzapytanie ma zbyt wiele kolumn
Relacja „królestwo” zawiera imię króla i gdy jego królestwo zaczęło i skończyło . Relacja "dinasty" obejmuje imię, płeć, narodziny i śmierć.
Próbuję zapytać, to król, który był najstarszy, gdy zmarł.
Z moim zapytaniu Otrzymuję ten błąd w wierszu 3 (nie w): subquery has too many columns
Jest to zapytanie:
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
);
Co jest w środku NOT IN jest prawidłowe.
Nie ma to wpływu na twój kod, ale proszę poprawnie przeliterować dynastię. –