最后 thread_date 的结果数据
Resulting data on last thread_date
由于我通过回答修复了上一个问题,我现在坚持在部分中检索基于最后一个 thread_date 的线程。
代码本身似乎工作正常,但它只打印出一个结果而不是其他结果。
线程有一个 threads.cat_id 链接到 thesubsubcategory.extra_cat_id。
SELECT
parent.subcat_id,
parent.subcat_name,
child.subsubcat_name,
child.subcat_id,
child.cat_id,
kid.thread_name,
kid.cat_id,
kid.thread_date
FROM
subcategories parent
JOIN subsubcategories child
ON child.cat_id = parent.cat_id
JOIN threads kid ON child.extra_cat_id = kid.cat_id
WHERE thread_date = (SELECT MAX(thread_date) FROM threads)
我期待的是:
Category
Subcategory Latest thread
Subcategory Latest thread
我得到的是:
Category
Subcategory Latest thread
SQL fiddle: http://sqlfiddle.com/#!9/52e27/2
有什么解决办法吗?
谢谢!
如果我的猜测是正确的,你想编辑 where 子句以根据最后日期显示更多内容,因为你的 threaddate 是日期时间,你必须在比较之前将其转换为日期格式。
SELECT parent.subcat_id,
parent.subcat_name,
child.subsubcat_name,
child.subcat_id,
child.cat_id,
kid.thread_name,
kid.cat_id,
kid.thread_date
FROM subcategories parent
INNER JOIN subsubcategories child
ON child.cat_id = parent.cat_id
INNER JOIN threads kid
ON child.extra_cat_id = kid.cat_id
WHERE convert(date,thread_date,108) = (
SELECT MAX(convert(date,thread_date,108))
FROM threads
)
您是否需要为每个子子类别获取一个具有最大日期的线程,不是吗?
SELECT
parent.subcat_id,
parent.subcat_name,
child.subsubcat_name,
child.subcat_id,
child.cat_id,
kid.thread_name,
kid.cat_id,
kid.thread_date
FROM subcategories parent
JOIN subsubcategories child ON child.cat_id=parent.cat_id
JOIN threads kid ON kid.cat_id=child.extra_cat_id
WHERE kid.thread_date=
(SELECT MAX(kid2.thread_date)
FROM threads kid2
WHERE kid2.cat_id=child.extra_cat_id)
我通过创建一个 PHP 函数来解决这个问题 return 最新的线程
SELECT * FROM threads WHERE subcat_id = variable
SQL.
由于我通过回答修复了上一个问题,我现在坚持在部分中检索基于最后一个 thread_date 的线程。
代码本身似乎工作正常,但它只打印出一个结果而不是其他结果。
线程有一个 threads.cat_id 链接到 thesubsubcategory.extra_cat_id。
SELECT
parent.subcat_id,
parent.subcat_name,
child.subsubcat_name,
child.subcat_id,
child.cat_id,
kid.thread_name,
kid.cat_id,
kid.thread_date
FROM
subcategories parent
JOIN subsubcategories child
ON child.cat_id = parent.cat_id
JOIN threads kid ON child.extra_cat_id = kid.cat_id
WHERE thread_date = (SELECT MAX(thread_date) FROM threads)
我期待的是:
Category
Subcategory Latest thread
Subcategory Latest thread
我得到的是:
Category
Subcategory Latest thread
SQL fiddle: http://sqlfiddle.com/#!9/52e27/2
有什么解决办法吗?
谢谢!
如果我的猜测是正确的,你想编辑 where 子句以根据最后日期显示更多内容,因为你的 threaddate 是日期时间,你必须在比较之前将其转换为日期格式。
SELECT parent.subcat_id,
parent.subcat_name,
child.subsubcat_name,
child.subcat_id,
child.cat_id,
kid.thread_name,
kid.cat_id,
kid.thread_date
FROM subcategories parent
INNER JOIN subsubcategories child
ON child.cat_id = parent.cat_id
INNER JOIN threads kid
ON child.extra_cat_id = kid.cat_id
WHERE convert(date,thread_date,108) = (
SELECT MAX(convert(date,thread_date,108))
FROM threads
)
您是否需要为每个子子类别获取一个具有最大日期的线程,不是吗?
SELECT
parent.subcat_id,
parent.subcat_name,
child.subsubcat_name,
child.subcat_id,
child.cat_id,
kid.thread_name,
kid.cat_id,
kid.thread_date
FROM subcategories parent
JOIN subsubcategories child ON child.cat_id=parent.cat_id
JOIN threads kid ON kid.cat_id=child.extra_cat_id
WHERE kid.thread_date=
(SELECT MAX(kid2.thread_date)
FROM threads kid2
WHERE kid2.cat_id=child.extra_cat_id)
我通过创建一个 PHP 函数来解决这个问题 return 最新的线程
SELECT * FROM threads WHERE subcat_id = variable
SQL.