Посчитать в таблице сколько раз встречается кусок данных из другой таблицы - MySQL
Формулировка задачи:
Собственно есть две таблицы events и таблица venues. В таблице events есть поле Venue которое также встречается в таблице venues под видом name. Собственно задача, нужно вывести некоторую информацию из таблицы venues - тот же name, field1...fieldn и главная задача получить count из таблицы events где поле евентс - Venue равно полю name из таблицы venues. Промучился довольно долго подскажите плиз что делать.
Есть попытка что то сделать но не уверен в правильности направления
SELECT name AS c1, (SELECT COUNT(Venue) FROM events WHERE Venue = 'c1') AS c2 FROM venues;
Решение задачи: «Посчитать в таблице сколько раз встречается кусок данных из другой таблицы»
textual
Листинг программы
SELECT t1.name, t1.alias, t1.city, t1.state, COUNT(t2.Venue) AS COUNT FROM venues AS t1, events AS t2 WHERE t2.Venue=t1.name GROUP BY t1.name
Объяснение кода листинга программы
В представленном коде выполняется подсчёт количества событий (записей в таблице events) для каждого места проведения (записей в таблице venues), при этом в итоговом результате выводится информация о названии места, его псевдониме, городе и штате, а также количество событий.
Код можно разбить на следующие фрагменты:
SELECT t1.name, t1.alias, t1.city, t1.state, COUNT(t2.Venue) AS COUNT— здесь указано, какие поля следует вывести в итоговом результате. Помимо этого, используется функцияCOUNT, которая будет подсчитывать количество событий для каждого места.FROM venues AS t1, events AS t2— здесь указываются таблицы, которые будут использоваться в запросе.WHERE t2.Venue=t1.name— здесь устанавливается условие для связи таблиц: сопоставляются поляVenueиз таблицыeventsиnameиз таблицыvenues.GROUP BY t1.name— здесь указывается, что результаты запроса должны быть сгруппированы по полюnameиз таблицыvenues.