· 8 years ago · Mar 07, 2018, 04:08 PM
1select * from
2(SELECT writings.id, writings.title, writings.excerpt, writings.description,
3writings.body, writings.created_on, writings.updated_on, writings.created_by,
4 writings.updated_by, writings.featured, writings.views, avg(rating) AS avg_rating
5FROM writings
6LEFT JOIN ratings ON ratings.rateable_id = writings.id
7GROUP BY rateable_id) ORDER BY avg_rating
8
9#what am I missing here?
10
11--
12-- Table structure for table `ratings`
13--
14
15DROP TABLE IF EXISTS `ratings`;
16CREATE TABLE `ratings` (
17 `id` int(11) NOT NULL auto_increment,
18 `rating` int(11) default '0',
19 `created_at` datetime NOT NULL,
20 `rateable_type` varchar(15) NOT NULL default '',
21 `rateable_id` int(11) NOT NULL default '0',
22 `user_id` int(11) NOT NULL default '0',
23 `description` text,
24 PRIMARY KEY (`id`),
25 KEY `fk_ratings_user` (`user_id`)
26) ENGINE=InnoDB DEFAULT CHARSET=latin1;
27
28
29--
30-- Table structure for table `writings`
31--
32
33DROP TABLE IF EXISTS `writings`;
34CREATE TABLE `writings` (
35 `id` int(11) NOT NULL auto_increment,
36 `title` varchar(255) default NULL,
37 `excerpt` varchar(255) default NULL,
38 `description` text,
39 `body` text,
40 `created_on` datetime default NULL,
41 `updated_on` datetime default NULL,
42 `created_by` int(11) default NULL,
43 `updated_by` int(11) default NULL,
44 `featured` tinyint(1) default NULL,
45 `views` int(11) default NULL,
46 PRIMARY KEY (`id`)
47) ENGINE=InnoDB DEFAULT CHARSET=latin1;