我遇到了MySQL的问题。我有两个表,类别和主题。我想选择所有类别并加入其中categories.id等于max topics.id的主题,其中topics.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列”。
答案 0 :(得分:0)
你应该考虑更新你的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)