如何解决从多个表中查询主题和类别
|| 我在使用MySQL时遇到问题。我有两个表,类别和主题。我想选择所有类别并加入主题,其中category.id等于最大topic.id,而topic.cat_id等于Categories.id。基本上,我试图显示类别列表,然后显示该类别下的最新主题。 到目前为止,这是我的选择语句:SELECT
*
FROM
categories
LEFT JOIN
topics
ON
categories.cat_id = (SELECT
MAX(topics.id),topic_cat
FROM
topics
WHERE
topic_cat = categories.cat_id)
GROUP BY
categories.cat_id
我如何有效地做到这一点?我收到一个错误“操作数应包含1列”。
解决方法
您应该考虑更新select子句,以仅从两个表中提取所需的列(可能会有带*的重复列),但请尝试一下:
select *
from categories c
left join topics t
on c.cat_id = t.topic_cat
and t.id = (select MAX(id) from topics where topic_cat = c.cat_id)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。