2012-12-11 50 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感到困惑。 –