Обсуждение: A strange problem

Поиск
Список
Период
Сортировка

A strange problem

От
Tang Tim Hei
Дата:
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'


Re: A strange problem

От
Stephan Szabo
Дата:
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.

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


Re: A strange problem

От
Douglas McNaught
Дата:
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