Php 如何找到所需的唯一结果

Php 如何找到所需的唯一结果,php,mysql,sql,Php,Mysql,Sql,我有两个表格“主题”和“子类别” 我正在使用这个查询-- 我的结果显示 类别\u id子类别\u id发布时间 2 2.3 4 2012-12-01 1 1.5 5 2013-01-20 1 1.3 6 2013-03-18 还有其他专栏。。。但我只想选择一个类别id的最新帖子id和子类别id。。。这意味着这里类别1有两个子类别,当数据库变大时,它将只选择最新的(

我有两个表格“主题”和“子类别”

我正在使用这个查询--

我的结果显示

类别\u id子类别\u id发布时间

    2        2.3         4    2012-12-01
    1        1.5         5    2013-01-20
    1        1.3         6    2013-03-18
还有其他专栏。。。但我只想选择一个类别id的最新帖子id和子类别id。。。这意味着这里类别1有两个子类别,当数据库变大时,它将只选择最新的(这里是1.3)和所有类别的相同结果。下一个查询是什么,或者如何更改现有查询以获得所需的结果

SELECT TOP 1 ... ORDER BY whatever column determines "the latest"
e、 g

或者在mysql的情况下:

SELECT ... ORDER BY TIME DESCENDING LIMIT 1

我认为这样做会奏效。

使用以下查询加入您的主题表:

SELECT s.* FROM subcategory s
    Inner JOIN (SELECT s1.Category_id,
                 MAX(s1.time1) AS max_time
                 FROM subcategory s1
                 GROUP BY s1.Category_id) y 
ON y.Category_id = s.Category_id AND y.max_time = s.time1

你说的第一名是什么意思oops mysql似乎不支持这一点。但是它支持“限制”:,我相应地给出了答案。虽然您的sql显示了一个错误,但感谢您将sql的最后一部分与我的结合,它显示了我想要的结果。
SELECT ... ORDER BY TIME DESCENDING LIMIT 1
SELECT Post_Id, Subcategory_Id from subcategory as s, topic as t where 
   s.Subcategory_id = t.Subcategory_id and time = (
      SELECT Max(time) from subcategory as s1, topic as t1 where 
         s1.Subcategory_id = t1.Subcategory_id and s1.Category_id = s.Category_id
   );
SELECT s.* FROM subcategory s
    Inner JOIN (SELECT s1.Category_id,
                 MAX(s1.time1) AS max_time
                 FROM subcategory s1
                 GROUP BY s1.Category_id) y 
ON y.Category_id = s.Category_id AND y.max_time = s.time1