任意のIDが2つ必要な場合は、min()を使用してください およびmax() :
SELECT c.`cat_name` , min(id), max(id)
FROM `info` i INNER JOIN
`category` c
ON i.`cat_id` = c.`cat_id`
WHERE c.`cat_name` IS NOT NULL
GROUP BY c`.`cat_name`
ORDER BY c.`cat_name` ASC ;
注:LEFT JOINを使用しています 次に、秒の列で集計します。 テーブル。一致しないものはすべてNULLに配置されるため、これは通常はお勧めできません。 グループ。さらに、WHERE 句はLEFT JOINを回します INNER JOINへ とにかく、私はそれを修正しました。 WHERE cat_nameであるかどうかに応じて、句が必要な場合と不要な場合があります。 NULLです 。
最大または最小の2つが必要な場合、同じ列にそれらを含めることができます:
SELECT c.`cat_name`,
substring_index(group_concat id order by id), ',', 2) as ids_2
FROM `info` i INNER JOIN
`category` c
ON i.`cat_id` = c.`cat_id`
WHERE c.`cat_name` IS NOT NULL
GROUP BY c`.`cat_name`
ORDER BY c.`cat_name` ASC ;