[ILUG] MySQL question
Niall O Broin
niall at linux.ie
Sat Sep 1 15:33:06 IST 2001
Given two tables
mysql> describe Customers;
+--------------+-------------+------+-----+-----------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+-----------+----------------+
| Username | varchar(32) | | UNI | | |
| Password | varchar(32) | YES | | NULL | |
| ID | smallint(6) | | PRI | NULL | auto_increment |
| Name | varchar(50) | | | | |
+--------------+-------------+------+-----+-----------+----------------+
9 rows in set (0.00 sec)
mysql> describe Deliveries;
+-------------+---------------+------+-----+------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+------------+-------+
| Customer_ID | smallint(6) | | PRI | 0 | |
| Picture_ID | int(11) | | PRI | 0 | |
| Date | date | | PRI | 0000-00-00 | |
| When | timestamp(14) | YES | | NULL | |
+-------------+---------------+------+-----+------------+-------+
4 rows in set (0.00 sec)
How do I get a listing of Customers with the date of each customer's latest
delivery, ordered by the date ? I tried
select Name, max(Date) as Max from Customers, Deliveries order by Max;
but that tells me that
Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is
illegal if there is no GROUP BY clause
so I tried various combinations of GROUP BY with no great success. Can I do I
do this and if so, how (and given that it's MySQL, I hope the answer doesn't
involve subselects :-( )
Regards,
Niall
More information about the ILUG
mailing list