Roman,

try to execute this query:

select e.cid,d.amount,dd.amount
from eee e
left join ddd d on (d.cid=e.cid and d.c>=2 and d.c<=3)
left join ddd dd on (dd.cid=e.cid and dd.c=3)

and after that try to group by them manualy. What do you have as result?

Best regards,
Mikhail.

----- Original Message -----
From: "Roman Menshikov" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, September 04, 2002 9:47 AM
Subject: error in left join


> Hello mysql team,
>
> Server info:
>
> Release:       mysql-3.23.52 (Official MySQL RPM)
> Server: /usr/bin/mysqladmin  Ver 8.23 Distrib 3.23.52, for pc-linux-gnu on
i686
> Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
> This software comes with ABSOLUTELY NO WARRANTY. This is free software,
> and you are welcome to modify and redistribute it under the GPL license
> Server version          3.23.52
> Protocol version        10
> Connection              Localhost via UNIX socket
> UNIX socket             /var/lib/mysql/mysql.sock
> Uptime:                 1 day 14 hours 59 min 28 sec
> Threads: 1  Questions: 430690  Slow queries: 11  Opens: 58  Flush tables:
1  Open tables: 38 Queries per second avg: 3.068
> System: Linux ic-tm-s-slave-0001.intercaf.ru 2.4.7-10enterprise #1 SMP Thu
Sep 6 16:48:20 EDT 2001 i686 unknown
> Architecture: i686
> Some paths:  /usr/local/bin/perl /usr/bin/make /usr/bin/gmake /usr/bin/gcc
/usr/bin/cc
>
> Let's say I have 2 tables:
>
> create table eee(cid int not null primary key, l varchar(10));
> create table ddd(cid int not null, c int not null, amount int);
>
> And some data:
> insert into eee values(1,'1');
> insert into eee values(2,'2');
> insert into eee values(3,'3');
> insert into eee values(4,'4');
> insert into eee values(5,'5');
> insert into ddd values(2,1,10);
> insert into ddd values(2,2,100);
> insert into ddd values(2,3,1020);
> insert into ddd values(4,1,1020);
> insert into ddd values(4,2,1020);
> insert into ddd values(4,3,1020);
>
> The problem is: when I issue the query:
> select e.cid,sum(d.amount),sum(dd.amount)
> from eee e
> left join ddd d on d.cid=e.cid and d.c>=2 and d.c<=3
> left join ddd dd on dd.cid=e.cid and dd.c=3
> group by e.cid;
>
> I've got:
> +-----+---------------+----------------+
> | cid | sum(d.amount) | sum(dd.amount) |
> +-----+---------------+----------------+
> |   1 |             0 |              0 |
> |   2 |          1120 |           2040 |
> |   3 |             0 |              0 |
> |   4 |          2040 |           2040 |
> |   5 |             0 |              0 |
> +-----+---------------+----------------+
>
> while I shuld get quite other result:
> +-----+---------------+----------------+
> | cid | sum(d.amount) | sum(dd.amount) |
> +-----+---------------+----------------+
> |   1 |             0 |              0 |
> |   2 |          1120 |           1020 |
> |   3 |             0 |              0 |
> |   4 |          2040 |           1020 |
> |   5 |             0 |              0 |
> +-----+---------------+----------------+
>
> See the difference in the 3rd columns???
> --
> Best regards,
>  Roman                          mailto:[EMAIL PROTECTED]
>
>
>
> ---------------------------------------------------------------------
> Before posting, please check:
>    http://www.mysql.com/manual.php   (the manual)
>    http://lists.mysql.com/           (the list archive)
>
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail
<[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
>


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to