我有两张table。第一个叫 subject
另一个打电话来 comment
. 很明显,主题表和注解有一对多的关系。以下是这些表的架构: subject
:
__________________________
| id | subject_id | title |
--------------------------
| 1 | 1 | health|
--------------------------
| 2 | 2 | sport |
---------------------------
| 3 | 5 | food |
---------------------------
评论:
----------------------------------------
| id | user_id | subject_id | date |
----------------------------------------
| 1 | 10 | 1 | 2018-07-04|
-----------------------------------------
| 2 | 9 | 1 | 2018-07-03|
-----------------------------------------
| 3 | 10 | 1 | 2018-07-02|
----------------------------------------
我想从subject表中检索所有用户id=10且最大日期为的subject id。在这种情况下,结果必须是这样的:只有一个记录,并且它的主题id=1;
$query = "SELECT subject_id FROM subject AS s, comment AS c WHERE
s.subject_id = c.subject_id AND c.user_id = 10
GROUP BY MAX(c.date)
但不幸的是,它会根据与特定主题相关的注解数返回主题id:
2条答案
按热度按时间gwo2fgha1#
如果您想使用聚合,我认为子查询将帮助您在下面的方式
rta7y2nd2#
你不应该像以前那样分组。如果这是整个查询,则应按日期排序,并将输出限制在第一行:
注意,我已经取代了老式的
,
连接语法JOIN
关键字