Re: dunction issue

From: Sam Mason <sam(at)samason(dot)me(dot)uk>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: dunction issue
Date: 2008-03-27 22:17:27
Message-ID: 20080327221727.GU6870@frubble.xen.chris-lamb.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, Mar 27, 2008 at 08:43:46PM +0100, Alain Roger wrote:
> i have a problem solving my function trouble.
> this function should return an email address stored in a table
> (tmp_newsletterreg) based on a number (sessions ID).
> if the session id is not find it should return a string corresponding to and
> error.
> if the email in found but already exists into another table (users), it
> should also return a string value relative the this error.

This is fun isn't it!

> here is my stored procedure.

And here it is in a single, unreadable, SQL statement:

SELECT CASE WHEN s.email = u.email THEN 'email already exists'
ELSE COALESCE(s.email, 'no such session') END AS msg
FROM (VALUES (1)) x(one)
LEFT JOIN (
SELECT email FROM tmp_newsletterreg
WHERE sessionid = $1) s ON TRUE
LEFT JOIN (SELECT email FROM users) u ON s.email = u.email;

Why not put a foreign key on the "email" column to the users table---one
less error to handle that way?

Sam

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2008-03-27 22:34:49 Re: dunction issue
Previous Message Erik Jones 2008-03-27 22:11:10 Re: table of US states' neighbours