"Jonathan Mangin" <[EMAIL PROTECTED]> wrote on 10/07/2005 02:57:28 
PM:

> I have two tables with date and uid cols. in common.
> Table 1 has one row per date, Table 2 has a maximum
> of 7 rows per date.
> 
> select t1.date, t1.val, t2.val from t1
> right join t2 on t1.date = t2.date
> where t1.date between '2005-08-01' and '2005-08-14'
> and t1.uid = 'me';
> 
> +------------------------------+
> | t1.date    | t1.val | t2.val |
> +------------+--------+--------+
> | 2005-08-01 |     92 |   18.3 |
> | 2005-08-01 |     92 |   23.3 |
> +------------+--------+--------+
> 
> Is there any way to get something like this
> 
> +------------------------------+--------+
> | t1.date    | t1.val | t2.val | t2.val |
> +------------+--------+--------+--------+
> | 2005-08-01 |     92 |   18.3 |   23.3 |
> +------------+--------+--------+--------+
> 
> instead of duplicating Table 1 rows for every row
> in Table 2?
> 
> Thanks,
> Jon
> 
> 
You cannot get that kind of results as distinct and separate columns. Have 
you looked at the GROUP_CONCAT() function as a work around?

SELECT t1.date, t1.val, GROUP_CONCAT(t2.val)
FROM t1
RIGHT JOIN t2
        on t1.date = t2.date
where t2.date between '2005-08-01' and '2005-08-14'
        and t1.uid = 'me'
GROUP BY t1.date, t1.val;

Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine

Reply via email to