2 つのテーブルで LEFT JOIN/INNER JOIN/JOIN を実行しようとしています (違いを忘れて、MySQL の知識がぼやけてしまいました...)。1 つはcategories
、もう 1 つは ですimages
。
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
これに関するアイデアをいただければ幸いです。ありがとうございます。