A strange problem

Started by Timmyover 20 years ago3 messagesgeneral
Jump to latest
#1Timmy
timheit@netvigator.com

Hi,
I'm new to postgresql. Anytime I type the following command to the database to run, it give me no result record if table 'country' is empty but can get result if 'country' is not empty. Is this so strange?

select A.* from test.currency A, test.country B where A.curr_cd='USD'

#2Doug McNaught
doug@mcnaught.org
In reply to: Timmy (#1)
Re: A strange problem

Tang Tim Hei <timheit@netvigator.com> writes:

Hi,
I'm new to postgresql. Anytime I type the following command to the database to run, it give me no result record if table 'country' is empty but can get result if 'country' is not empty. Is this so strange?

select A.* from test.currency A, test.country B where A.curr_cd='USD'

You're doing an unconstrained join on "currency" and "country", and if
one of those two tables is empty the result will be empty.

-Doug

#3Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Timmy (#1)
Re: A strange problem

On Sat, 27 Aug 2005, Tang Tim Hei wrote:

Hi,

I'm new to postgresql. Anytime I type the following command to the
database to run, it give me no result record if table 'country' is
empty but can get result if 'country' is not empty. Is this so
strange?

Not really. You're doing a cartesian join between test.currency and
test.country. If there are no rows in test.country, there are no rows in
the output of the from clause.

Show quoted text

select A.* from test.currency A, test.country B where A.curr_cd='USD'