显示子类别SQL的最新主题

时间:2016-07-24 20:29:37

标签: php sql

我正在尝试使用子类别创建一个类别,该子类别显示子类别中的最新主题。

但是,数据库设置似乎有些问题。

查询:

$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

1 个答案:

答案 0 :(得分:-1)

您真的不清楚您尝试使用该查询实现了什么,但您无法使用:

o

与:

结合使用
SELECT *

将select语句更改为:

GROUP BY

删除GROUP BY子句。

Gilad已经整理了很多你的查询,但他目前在他的WHERE子句中有一个尾随的AND,以及GROUP BY的上述问题,不幸的是我无法评论让他知道。

编辑 - 显然你可以在mysql中使用select * with group by ...