"Subquery must return only one column" & query optimization
От | Philippe Lang |
---|---|
Тема | "Subquery must return only one column" & query optimization |
Дата | |
Msg-id | E6A0649F1FBFA3408A37F505400E7AC2118531@email.attiksystem.ch обсуждение исходный текст |
Ответы |
Re: "Subquery must return only one column" & query optimization
|
Список | pgsql-sql |
Hi, I was trying to run this query this morning: -------------------------- SELECT r.*, (SELECT rl.reminder_header,rl.reminder_footer FROM reminder_levels AS rlWHERE rl.lookup =( SELECT MAX(reminder_level_lookup) FROM reminders WHERE customer_id= r.customer_id) ) FROM reminders AS r -------------------------- Postgresql replied that: -------------------------- ERROR: subquery must return only one column SQL state: 42601 -------------------------- Is there a way to avoid writing: -------------------------- SELECT r.*, (SELECT rl.reminder_header FROM reminder_levels AS rlWHERE rl.lookup =( SELECT MAX(reminder_level_lookup) FROM reminders WHERE customer_id= r.customer_id) ) AS reminder_header, (SELECT rl.reminder_footer FROM reminder_levels AS rlWHERE rl.lookup =( SELECT MAX(reminder_level_lookup) FROM reminders WHERE customer_id= r.customer_id) ) AS reminder_footer FROM reminders AS r -------------------------- ... which works, but runs twice the same subselect block: --------------------------FROM reminder_levels AS rlWHERE rl.lookup =( SELECT MAX(reminder_level_lookup) FROM reminders WHERE customer_id = r.customer_id) -------------------------- Thanks, Philippe Lang
В списке pgsql-sql по дате отправления: