Thread: Query Help

Query Help

From
yusuf0478@netscape.net
Date:
I'm interested in finding the minimim A.id such that the following holds:

select A.charge   , B.user_id   , C.employee_id
from A
inner join B using (user_id)
inner join C using (employee_id)

except

select X.charge   , Y.user_id   , Z.employee_id
from X
inner join Y using (user_id)
inner join Z using (employee_id)

--

I can't do the following, since the number of selected columns have to match: 

select A.id    , A.charge   , B.user_id   , C.employee_id
from A
inner join B using (user_id)
inner join C using (employee_id)

except

select X.charge   , Y.user_id   , Z.employee_id
from X
inner join Y using (user_id)
inner join Z using (employee_id)

Can someone help me with the query?

Thanks in advance.

__________________________________________________________________
McAfee VirusScan Online from the Netscape Network.
Comprehensive protection for your entire computer. Get your free trial today!
http://channels.netscape.com/ns/computing/mcafee/index.jsp?promo=393397

Get AOL Instant Messenger 5.1 free of charge.  Download Now!
http://aim.aol.com/aimnew/Aim/register.adp?promo=380455


Re: Query Help

From
"scott.marlowe"
Date:
On Thu, 23 Oct 2003 yusuf0478@netscape.net wrote:

> I'm interested in finding the minimim A.id such that the following holds:
> 
> select A.charge
>     , B.user_id
>     , C.employee_id
> from A
> inner join B using (user_id)
> inner join C using (employee_id)
> 
> except
> 
> select X.charge
>     , Y.user_id
>     , Z.employee_id
> from X
> inner join Y using (user_id)
> inner join Z using (employee_id)
> 
> --
> 
> I can't do the following, since the number of selected columns have to match: 
> 
> select A.id 
>     , A.charge
>     , B.user_id
>     , C.employee_id
> from A
> inner join B using (user_id)
> inner join C using (employee_id)
> 
> except
> 
> select X.charge
>     , Y.user_id
>     , Z.employee_id
> from X
> inner join Y using (user_id)
> inner join Z using (employee_id)

Maybe you can add a dummy field in the second half like this:

except
select -1     , X.charge    , Y.user_id    , Z.employee_id

???



Re: Query Help

From
yusuf0478@netscape.net
Date:
Wouldn't that return every A.id ? since A.id would be compared to -1, and the wouldnt' be the same.

I want:

select min(A.id) such that A.charge, B.userid, C.employee_id in 
(select A.charge    , B.user_id    , C.employee_idfrom Ainner join B using (user_id)inner join C using
(employee_id)except
select X.charge    , Y.user_id    , Z.employee_idfrom Xinner join Y using (user_id)inner join Z using (employee_id)
)


"scott.marlowe" <scott.marlowe@ihs.com> wrote:

>On Thu, 23 Oct 2003 yusuf0478@netscape.net wrote:
>
>> I'm interested in finding the minimim A.id such that the following holds:
>> 
>> select A.charge
>>     , B.user_id
>>     , C.employee_id
>> from A
>> inner join B using (user_id)
>> inner join C using (employee_id)
>> 
>> except
>> 
>> select X.charge
>>     , Y.user_id
>>     , Z.employee_id
>> from X
>> inner join Y using (user_id)
>> inner join Z using (employee_id)
>> 
>> --
>> 
>> I can't do the following, since the number of selected columns have to match: 
>> 
>> select A.id 
>>     , A.charge
>>     , B.user_id
>>     , C.employee_id
>> from A
>> inner join B using (user_id)
>> inner join C using (employee_id)
>> 
>> except
>> 
>> select X.charge
>>     , Y.user_id
>>     , Z.employee_id
>> from X
>> inner join Y using (user_id)
>> inner join Z using (employee_id)
>
>Maybe you can add a dummy field in the second half like this:
>
>except
>
> select -1 
>     , X.charge
>     , Y.user_id
>     , Z.employee_id
>
>???
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 6: Have you searched our list archives?
>
>               http://archives.postgresql.org
>

__________________________________________________________________
McAfee VirusScan Online from the Netscape Network.
Comprehensive protection for your entire computer. Get your free trial today!
http://channels.netscape.com/ns/computing/mcafee/index.jsp?promo=393397

Get AOL Instant Messenger 5.1 free of charge.  Download Now!
http://aim.aol.com/aimnew/Aim/register.adp?promo=380455