У меня есть две таблицы, давайте представим, что они являются следующие:Как сделать сгруппированные путем объединения в sql?
домашних животных
+----+----------+-------+
| id | name | type |
+----+----------+-------+
| 1 | itchy | mouse |
| 2 | poochie | dog |
| 3 | scratchy | cat |
| 4 | john | human |
+----+----------+-------+
воротники
+----+---------------+--------+
| id | name | pet_id |
+----+---------------+--------+
| 1 | collar_heaven | 2 |
| 2 | red_collar | 2 |
| 3 | cat_collar | 3 |
| 4 | tiny_collar | 1 |
| 5 | backup_collar | 2 |
+----+---------------+--------+
(Обратите внимание, что животное ID # 4 не имеет воротника)
Я хочу выбрать MIN(name)
и MAX(name)
для каждого воротника, соединенного с домашними животными.
Так желаемый результат:
Ожидаемый выход
+----+----------+-------+-------------------+------------------+
| id | name | type | collar_first_name | collar_last_name |
+----+----------+-------+-------------------+------------------+
| 1 | itchy | mouse | tiny_collar | tiny_collar |
| 2 | poochie | dog | backup_collar | red_collar |
| 3 | scratchy | cat | cat_collar | cat_collar |
| 4 | john | human | NULL | NULL |
+----+----------+-------+-------------------+------------------+
По существу своего рода
SELECT id, name, type, MIN(name) as first_name, MAX(name) as last_name
FROM pets JOIN collars
GROUP BY pet_id