У меня две таблицы - countries
, tours
.
countries
имеет поля (id
), (name
), (order
)
tours
имеет поля (id
), (id_country
)...
Мне нужно получить весь список id
и name
из таблицы countries
, упорядоченный по их порядку, и количество записей в таблице tours
, где tours
. id_country
= countries
. id
countries
.
Т.е. мне нужно получить такой список
id name count_of_tours
1 France 15
2 England 22
.............................
Можно ли сделать в одном запросе?
Спасибо большое
SELECT C.id,
C.name,
COUNT(T.id) as count_of_tours
FROM countries C
LEFT JOIN tours T
ON T.id_country = C.id
GROUP BY C.id,
C.name
ORDER BY C.order
SELECT countries.id, countries.name, COUNT(id_country) AS Count
FROM countries
LEFT JOIN tours
on tours.id_country = countries.id
GROUP BY id_country
ORDER BY countries.order
Это реальное возможное все, что вам нужно узнать, это использование объединений. Когда вы используете соединение, вы можете присоединиться к результату из двух таблиц и дать результат как один.
SELECT id, name, COUNT (id_country) FROM countries LEFT JOIN tours on tours.id_country = countries.id order by countries.id;