2012-12-11 48 views
0

我试图做一个左加入/内部加入/加入(忘了差异,我的MySQL知识变得满是灰尘......)在两张桌子上。一个是categories,另一个是imagesMySQL加入分组和排序

我想返回所有categories列表具有一定parent值,并为每个类别从images回的最新图像该类别。

我结束了与此查询:

SELECT * FROM `categories` AS `a` 
     JOIN (SELECT `im`.`preview` AS `preview`, 
         `im`.`cid` AS `cid` 
       FROM `images` AS `im` 
       ORDER BY `im`.`cid` DESC) AS `b` 
       ON (`a`.`cid` = `b`.`cid`) 
     GROUP BY `preview` 

这从图像表返回一个单一的形象在类别表, 每一行,但如果我想尝试条件/结果排序表,我开始变得怪异的结果, 例如改变结束这种或任何类似的变化:

WHERE `a`.`parent` = 10 
GROUP BY `preview` 
ORDER BY `a`.`cid 

将不胜感激你对此有何想法。先谢谢了。

+0

彼得的回答已经帮我解决了这个问题,但是非常感谢你马哈茂德! –

回答

1

你可以做到这一点也没有参加,只是使用子查询:

SELECT 
c.*, 
(SELECT preview 
FROM images img 
WHERE img.cid = c.cid 
ORDER BY img.id DESC 
LIMIT 1) AS preview 
FROM categories c 
+0

太棒了!谢谢:)我总是对什么时候使用JOIN感到困惑。 –