请教一条sql语句
两个表,表1:
newstype: tid int, typename varchar(30), lastupdate datetime
表2:
news: aid int, title varchar(50), tid
现在需要 取出分类信息及其下按aid排序的最新两条news aid与title
也就是想说,我想在一条sql里取出分类信息及其下的两条news(将news信息concat起来,回头到脚本里再split拆开)
我是这样做的:
SELECT tid, typename, lastupdate, (SELECT GROUP_CONCAT(aid, '|#|', title SEPARATOR '|#|') FROM news_articles a2 WHERE a2.aid = ANY(SELECT a3.aid FROM (SELECT aid FROM news_articles a3 WHERE a3.typeid = t.tid ORDER BY a3.aid DESC LIMIT 2) a) GROUP BY a2.typeid) AS arts FROM news_types t ORDER BY t.lastupdate DESC LIMIT 10
运行时,报错:
Error Code : 1054
Unknown column 't.tid' in 'where clause'
我猜原因是tid是运行时数据,无法被深层的子查询所获取吧……
水平有限,写复杂 sql 语句写到后边就抓狂乱来了……帮帮我吧= =!