我正在尝试使用子类别创建一个类别,该子类别显示子类别中的最新主题。
但是,数据库设置似乎有些问题。
查询:
$stmt = $conn->prepare("SELECT *
FROM categories
LEFT JOIN subs ON subs.category_id = categories.id
LEFT JOIN threads ON subs.category_id = threads.subcategory_id
WHERE threads.lastdate = 5 AND categories.id = subs.category_id AND subs.category_id = threads.subcategory_id AND
threads.lastdate = threads.lastdate
GROUP BY threads.lastdate, categories.id ASC")
数据库:
CREATE TABLE `threads` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`subcategory_id` int(11) NOT NULL,
`title2` varchar(255) NOT NULL DEFAULT '',
`lastdate` int(11) NOT NULL,
`user` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
潜艇:
CREATE TABLE `subs` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) DEFAULT NULL,
`category_id` int(60) DEFAULT NULL,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
分类
CREATE TABLE `categories` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
希望有人让我失火。
TJ
答案 0 :(得分:-1)
您真的不清楚您尝试使用该查询实现了什么,但您无法使用:
o
与:
结合使用SELECT *
将select语句更改为:
GROUP BY
或删除GROUP BY子句。
Gilad已经整理了很多你的查询,但他目前在他的WHERE子句中有一个尾随的AND,以及GROUP BY的上述问题,不幸的是我无法评论让他知道。
编辑 - 显然你可以在mysql中使用select * with group by ...