Hi,
I was trying to run this query this morning:
--------------------------
SELECT
r.*,
(
SELECT
rl.reminder_header,
rl.reminder_footer
FROM reminder_levels AS rl
WHERE 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 rl
WHERE 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 rl
WHERE 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 rl
WHERE rl.lookup =
(
SELECT MAX(reminder_level_lookup)
FROM reminders
WHERE customer_id = r.customer_id
)
--------------------------
Thanks,
Philippe Lang
--
Sent via pgsql-sql mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql