Re: Anyone good with Joins?

From: patrick <pgovern_at_u.washington.edu>
Date: Wed, 9 Apr 2008 09:04:48 -0700 (PDT)
Message-ID: <fd7299fc-9fb5-428d-98cd-a9729bacafba@a9g2000prl.googlegroups.com>


On Apr 9, 8:42 am, Mtek <m..._at_mtekusa.com> wrote:
> On Apr 9, 10:28 am, Mtek <m..._at_mtekusa.com> wrote:
>
>
>
>
>
> > Hi,
>
> > I'm thinking that this should be an outer join, but I am looking for
> > some decent examples.
>
> > In this query, the conditions are the same.  However, the second query
> > contains one extra table/condition/column not in the first query.
> > Right now I am getting duplicates which would be the result of both
> > queries........
>
> > Any thoughts?  If I find a good example searching the net it'd be
> > great.  but I thought I'd also ask some of the experts here.
>
> > Thank you,
>
> > SELECT TO_CHAR(co.date_entered, 'DD-MON-RRRR HH:MI:SS AM')
> > date_entered, p.subproduct_id, p.code,
> >        p.price, co.customer_id, ol.status, co.confirm, NULL adid
> > FROM customer_order co, order_line ol, product p
> > WHERE co.order_id = ol.order_id AND ol.product_id = p.product_id
> >   AND co.date_entered >= TRUNC(SYSDATE) - 7 AND p.subproduct_id IN
> >   (SELECT newsletter_id FROM product_group)
> > UNION
> > SELECT TO_CHAR(co.date_entered, 'DD-MON-RRRR HH:MI:SS AM')
> > date_entered, p.subproduct_id, p.code,
> >        p.price, co.customer_id, ol.status, co.confirm, ss.adid
> > FROM customer_order co, order_line ol, product p,
> > data_holder.shopcart_sessions ss
> > WHERE co.order_id = ol.order_id AND ol.product_id = p.product_id
> >   AND ol.order_id = ss.order_id AND co.date_entered >= TRUNC(SYSDATE)
> > - 7 AND p.subproduct_id IN
> >     (SELECT newsletter_id FROM product_group) ORDER BY date_entered
> > DESC;
>
> I came up with this join, but it yields different results:
>
> SELECT TO_CHAR(co.date_entered, 'DD-MON-RRRR HH:MI:SS AM')
> date_entered, p.subproduct_id, p.code,
>        p.price, co.customer_id, ol.status, co.confirm, ss.adid,
> ol.order_id, co.customer_id
> FROM engine.customer_order co
>   JOIN engine.order_line ol ON (co.order_id = ol.order_id)
>   JOIN engine.product p ON (ol.product_id = p.product_id)
>   JOIN data_holder.shopcart_sessions ss ON (ol.order_id = ss.order_id)
> WHERE co.date_entered >= TRUNC(SYSDATE) - 7 AND p.subproduct_id IN
>     (SELECT newsletter_id FROM product_group)
> ORDER BY co.date_entered;- Hide quoted text -
>
> - Show quoted text -

You might try

SELECT TO_CHAR(co.date_entered, 'DD-MON-RRRR HH:MI:SS AM'),
       p.subproduct_id, p.code,
       p.price, co.customer_id, ol.status, co.confirm, ss.adid
  FROM customer_order co, order_line ol, product p,
       data_holder.shopcart_sessions ss
 WHERE co.order_id = ol.order_id

   AND ol.product_id = p.product_id
   AND co.date_entered >= TRUNC(SYSDATE)- 7    AND p.subproduct_id IN (SELECT newsletter_id FROM product_group)    and ss.order_id(+) = ol.order_id
ORDER BY date_entered DESC;

====>Patrick Received on Wed Apr 09 2008 - 11:04:48 CDT

Original text of this message