Re: SQL Join - MySQL/PostgreSQL difference?

From: Brice Ruth <brice(at)webprojkt(dot)com>
To: Ian Harding <iharding(at)pakrat(dot)com>
Subject: Re: SQL Join - MySQL/PostgreSQL difference?
Date: 2001-02-06 18:07:03
Message-ID: 3A803D47.7D4C7079@webprojkt.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-sql

FYI: Here are the table definitions:

CREATE TABLE TBLPEMDRUGLINK
(
DRUGID VARCHAR(10) NOT NULL,
MONOGRAPHID VARCHAR(10) NOT NULL,
CONSTRAINT PK_TBLPEMDRUGLINK PRIMARY KEY (DRUGID, MONOGRAPHID)
);

CREATE TABLE TBLFDBMONO
(
VERSIONID VARCHAR(10) NOT NULL,
CATEGORY VARCHAR(10) NOT NULL,
MONOGRAPHID VARCHAR(10) NOT NULL,
SEQUENCENUMBER SMALLINT NOT NULL,
SECTIONCODE VARCHAR(1),
LINETEXT VARCHAR(255),
CONSTRAINT PK_TBLFDBMONO PRIMARY KEY (VERSIONID, CATEGORY,
MONOGRAPHID, SEQUENCENUMBER)
);

Running the following query:

Query1: SELECT sequencenumber,sectioncode,linetext
Query1: FROM tblfdbmono fdb, tblpemdruglink pem WHERE
Query1: fdb.monographid=pem.monographid AND
Query1: fdb.versionid='FDB-PE' AND
Query1: fdb.category='PEM' AND
Query1: pem.drugid='DG-5039';

returns 0 rows.

However, the following two queries produce results:

Query2: SELECT * FROM tblpemdruglink WHERE drugid='DG-5039';

Query3: SELECT * FROM tblfdbmono WHERE
Query3: monographid='2008' AND
Query3: versionid='FDB-PE' AND
Query3: category='PEM';

To my knowledge, Query1 is the join that should produce the same results
as the manual join represented by queries 2 & 3.

What's going on?

-Brice

Ian Harding wrote:
>
> Brice Ruth wrote:
>
> > Greetings.
> >
> > I'm working with a product provided by a third part that interfaces to
> > data housed in a database of your choice. Previously, my choice was
> > MySQL - apparently it handled certain queries too slowly, so I'm giving
> > PostgreSQL a shot. Here's the query:
> >
> > SELECT
> > a.Number,
> > a.Code,
> > a.Text
> > FROM
> > b,
> > a
> > WHERE
> > (b.Id = a.Id) AND
> > (VersionId = 'key1') AND
> > (Category = 'key2') AND
> > (b.d_Id = 'key3')
> > ORDER BY
> > a.Number;
> >
> > (my apologies: I had to 'mangle' the table/column names because of NDA)
> >
> > So my question is this: would this query operate differently in MySQL
> > than in PostgreSQL? The reason I ask is that this query in MySQL
> > returns results, yet in PostgreSQL it does not. I read a post about
> > PostgreSQL not supporting outer joins, but I don't have enough
> > experience with SQL to determine if this is such a query or not. Please
> >
> > advise.
> >
> > Any help will be (as always) sincerely appreciated.
> >
> > --
> > Brice Ruth
> > WebProjkt, Inc.
> > VP, Director of Internet Technology
> > http://www.webprojkt.com/
>
> It should work the same in both. The only thing I notice is that not all
> the field names are qualified with table names or aliases. That can lead
> to ambiguity, but the query would blow up on both databases if that were a
> problem.
>
> Ian

--
Brice Ruth
WebProjkt, Inc.
VP, Director of Internet Technology
http://www.webprojkt.com/

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Brett W. McCoy 2001-02-06 18:42:22 Re: Re: PostreSQL SQL for MySQL SQL
Previous Message Bruce Momjian 2001-02-06 18:03:14 Re: PostreSQL SQL for MySQL SQL

Browse pgsql-sql by date

  From Date Subject
Next Message Jie Liang 2001-02-06 18:13:04 Re: CREATE TABLE AS and ORDER BY
Previous Message Sebastian 2001-02-06 17:53:52 Load or Copy ??