[Q] Table aliasing

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.

Responses

Browse pgsql-general by date

  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