#mysql #sql
#mysql #sql
Вопрос:
У меня есть 2 таблицы, следующие таблицы:
Пользователи |
---|
ID |
Имя |
Автомобиль |
Автомобили |
---|
ID |
Имя |
допустим, у меня есть эти пользователи
идентификатор: 1
, имя: Michael
, автомобиль: 1
идентификатор: 2
, имя: Danny
, автомобиль: 2
идентификатор: 3
, имя: Jennifer
, автомобиль: 1
и эти машины
идентификатор: 1
, имя: Audi
,
идентификатор: 2
, имя BMW
Я пытаюсь узнать, сколько автомобилей каждого типа есть у пользователей, поэтому результат должен быть таким:
Автомобили | количество машин |
---|---|
Audi | 2 |
BMW | 1 |
Я выполняю следующую команду
SELECT u.car, c.name, COUNT('car count') FROM users u INNER JOIN cars c ON c.id = u.car GROUP BY c.id
что дает следующий результат
Автомобили | Имя | количество машин |
---|---|---|
1 | Audi | 2 |
2 | BMW | 1 |
Как я могу игнорировать столбец name, но отображать имя внутри столбца cars (как я упоминал выше)?
Комментарии:
1. Просто не выбирайте его, если он вам не нужен.
2. Извините, если я не понял, но машины возвращаются как
id
, и я хочу отобразить их имя3. Вы уже выбираете и отображаете название автомобиля, говорите, что хотите показать имя пользователя? Возможно, вам следует включить ожидаемый результат в свой вопрос.
4. @Andrew Я хочу, чтобы в столбце автомобили отображались имена, а не
id
, так что автомобили будутAudi
и количество будет2
, прямо сейчас он возвращает своиid
Ответ №1:
попробуй это.
SELECT c.name as cars, COUNT('car count')
FROM users u
INNER JOIN cars c ON c.id = u.car
GROUP BY c.id
Комментарии:
1. Именно то, что мне было нужно 🙂
Ответ №2:
Попробуйте это:
SELECT
c.name as 'car',
COUNT('car count')
FROM
users u
INNER JOIN
cars c ON c.id = u.car
GROUP BY
c.id
Комментарии:
1. Именно то, что мне было нужно 🙂