任意の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 ;