Thread: two table comparison: find a mismatch?

two table comparison: find a mismatch?

From
Web Manager
Date:
Hello,

here is to table:                              Table "city"  Attribute    |    Type     |                  Modifier
----------------+-------------+---------------------------------------------city_id        | smallint    | not null
default
nextval('seq_city'::text)region_id      | smallint    |region_tour_id | smallint    |country_id     | smallint
|name_fr       | varchar(40) |name           | varchar(40) |url_id         | smallint    |
 

                            Table "region"Attribute |    Type     |                   Modifier
-----------+-------------+----------------------------------------------region_id | smallint    | not null default
nextval('seq_region'::text)country_id|smallint    |name_fr   | varchar(40) |name      | varchar(40) |address   |
boolean    |url_id    | smallint    | 
 


I whant to fins a "hole" in the linkage... a region number in the city
table is not in the region table any more.

How can I do that?

Where is the city.region_id <> region.region_id

Thanks!
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Marc Andre Paquin


Re: two table comparison: find a mismatch?

From
"Ross J. Reedstrom"
Date:
On Fri, Jul 28, 2000 at 04:54:58PM -0400, Web Manager wrote:
> Hello,
> 
> here is to table:
>                                Table "city"
>    Attribute    |    Type     |                  Modifier
> ----------------+-------------+---------------------------------------------
>  city_id        | smallint    | not null default
> nextval('seq_city'::text)
>  region_id      | smallint    |
>  region_tour_id | smallint    |
>  country_id     | smallint    |
>  name_fr        | varchar(40) |
>  name           | varchar(40) |
>  url_id         | smallint    |
> 
> 
>                              Table "region"
>  Attribute |    Type     |                   Modifier
> -----------+-------------+----------------------------------------------
>  region_id | smallint    | not null default nextval('seq_region'::text)
>  country_id| smallint    |
>  name_fr   | varchar(40) |
>  name      | varchar(40) |
>  address   | boolean     |
>  url_id    | smallint    | 
> 
> 
> I whant to fins a "hole" in the linkage... a region number in the city
> table is not in the region table any more.
> 
> How can I do that?
> 

SELECT * FROM city WHERE region_id NOT IN (SELECT region_id FROM region)

should do it. 

BTW, the syntax on your defaults for the id's seems a bit odd. Any reason
your casting the text literal to text? Have we got a bug somewhere?

Ross
-- 
Ross J. Reedstrom, Ph.D., <reedstrm@rice.edu> 
NSBRI Research Scientist/Programmer
Computer and Information Technology Institute
Rice University, 6100 S. Main St.,  Houston, TX 77005