Получить список данных из одной таблицы и некоторое количество записей из другой, возможно ли сделать в одном запросе? - PullRequest
0 голосов
/ 25 сентября 2010

У меня есть две таблицы - 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
.............................

Можно ли сделать за один запрос?

Большое спасибо

Ответы [ 3 ]

2 голосов
/ 25 сентября 2010
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
2 голосов
/ 25 сентября 2010
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
0 голосов
/ 25 сентября 2010

Это реально возможно, все, что вам нужно выучить, это использование объединений.Когда вы используете объединение, вы можете объединить результат из двух таблиц и выдать результат как одну.

ВЫБЕРИТЕ id, name, COUNT (id_country) ИЗ СТРАН LEFT JOIN туры по туру..id;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...