From: | Ladislav Lenart <lenartlad(at)volny(dot)cz> |
---|---|
To: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | [Q] Table aliasing |
Date: | 2013-10-04 10:59:16 |
Message-ID: | 524E9F84.8000603@volny.cz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello.
I have a noob question about table aliases in SQL.
Suppose the following query:
SELECT *
FROM deal
WHERE
deal.id IN (
SELECT DISTINCT deal.id
FROM
deal
JOIN partner_share ON deal.id = partner_share.deal_id
JOIN partner ONshare.partner_id = partner.id
WHERE
partner.team_id = 12345
AND (
partner_share.type = 1 AND deal.external_id IS NOT NULL
OR partner_share.type = 2 AND deal.external_id IS NULL
)
)
As you can see, the IN (...) references the deal table too.
My questions:
* Should I alias one of the references to deal?
* The above query works the same both with and without an alias, so is it simply
a matter of taste / good practice?
* Where can I find more info about this, i.e. when the alias is mandatory and
when it is only a convenience? I've scanned through
http://www.postgresql.org/docs/9.1/static/queries-table-expressions.html
but it only mentions that subselect in FROM must have an alias. I would like to
know about IN (...) and EXISTS (...).
Thank you,
L.
From | Date | Subject | |
---|---|---|---|
Next Message | Adam Jelinek | 2013-10-04 12:46:39 | Re: [Q] Table aliasing |
Previous Message | Rémi Cura | 2013-10-04 08:46:06 | Re: [GENERAL] Re: [GENERAL] Help on ṕerformance |