GROUP BY?
Hej alle,Jeg har følgende database:
CREATE TABLE `openinghours` (
`openinghour_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`listing_code` char(255) NOT NULL,
`weekday` tinyint(50) NOT NULL,
`hours` char(50) NOT NULL,
PRIMARY KEY (`openinghour_id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8
Feltet weekday er et tal mellem 1 og 7 (mandag til søndag,) og hours indeholder et tidsrum, f.eks. 15:00 - 02:00, så et datasæt kunne se således ud:
+----------------+--------------+---------+---------------+
| openinghour_id | listing_code | weekday | hours |
+----------------+--------------+---------+---------------+
| 1 | MBC | 1 | 15:00 - 02:00 |
| 2 | MBC | 2 | 15:00 - 02:00 |
| 3 | MBC | 3 | 15:00 - 02:00 |
| 4 | MBC | 4 | 15:00 - 03:00 |
| 5 | MBC | 5 | 15:00 - 05:00 |
| 6 | MBC | 6 | 15:00 - 05:00 |
| 7 | MBC | 7 | 15:00 - 02:00 |
+----------------+--------------+---------+---------------+
På én eller anden måde skal jeg have hevet et resultat ud af databasen, som ser således ud:
weekday hours
1,2,3,7 15:00 - 02:00
4 15:00 - 03:00
5,6 15:00 - 05:00
Altså skal der grupperes efter hours-feltet. Jeg har prøvet med
SELECT * FROM openinghours WHERE listing_code = 'MBC' GROUP BY hours ORDER BY `weekday` ASC;
Men det returnerer følgende, hvilket sikkert er korrekt nok, men ikke det resultatsæt jeg søger:
+----------------+--------------+---------+---------------+
| openinghour_id | listing_code | weekday | hours |
+----------------+--------------+---------+---------------+
| 1 | MBC | 1 | 15:00 - 02:00 |
| 4 | MBC | 4 | 15:00 - 03:00 |
| 5 | MBC | 5 | 15:00 - 05:00 |
+----------------+--------------+---------+---------------+
Er der nogen som kan hjælpe med den korrekte query?