Thread: Query Help
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
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 ???
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