2016-08-12 4 views
2

У меня есть две таблицы «Студент» и «Команда». Я хочу отобразить кол-во учеников в соответствии с названием команды, Team_id из команды - первичный ключ.Подзапрос как столбец: Вложенный подзапрос

я попытался как этот

(SELECT(SELECT team,count(*) as team 
      FROM student GROUP BY team) AS total, 
    (SELECT team_name 
      from team WHERE team_id IN (SELECT team 
       FROM student GROUP BY team)) as team) 

я хочу выход как

Team Name  Total Student 
----------------------------- 
Team 1   25 
Team 2   10 

Таблица 'Студент'

CREATE TABLE IF NOT EXISTS `student` (
    `id` int(255) NOT NULL AUTO_INCREMENT, 
    `rid` varchar(200) NOT NULL, 
    `sid` varchar(200) NOT NULL, 
    `name` varchar(600) NOT NULL, 
    `age` varchar(200) NOT NULL, 
    `dob` varchar(200) NOT NULL, 
    `sex` varchar(200) NOT NULL, 
    `weight` varchar(200) NOT NULL, 
    `height` varchar(200) NOT NULL, 
    `team` varchar(600) NOT NULL, 
    `age_group` varchar(200) NOT NULL, 
    `weight_group` varchar(500) NOT NULL, 
    `belt` varchar(200) NOT NULL, 
    `black_belt` varchar(200) NOT NULL, 
    `ikata` varchar(20) NOT NULL, 
    `ikumite` varchar(20) NOT NULL, 
    `team_kata` varchar(20) NOT NULL, 
    `special_entry` varchar(20) NOT NULL, 
    `challange` varchar(50) NOT NULL, 
    `state` varchar(200) NOT NULL, 
    `weapon` varchar(200) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1; 

Таблица 'Команда'

CREATE TABLE IF NOT EXISTS `team` (
    `id` int(20) NOT NULL AUTO_INCREMENT, 
    `team_id` varchar(500) NOT NULL, 
    `team_name` varchar(500) NOT NULL, 
    `address` varchar(500) NOT NULL, 
    `coach_name` varchar(500) NOT NULL, 
    `coach_number` varchar(500) NOT NULL, 
    `coach_email` varchar(500) NOT NULL, 
    `gold` varchar(200) NOT NULL, 
    `state` varchar(500) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; 
+0

Не могли бы вы опубликовать структуру таблицы? –

+0

Подзапросы в предложениях SELECT могут не возвращать несколько результатов. – Uueerdo

+0

Как связаны эти таблицы? Другими словами, как вы связываете ученика с командой? – BrandonM

ответ

1

Кажется, вы ищете для этого

select a.team_name, count(*) 
from team as a 
inner join student as b on a.id = b.team 
group by a.team_name 

(используйте правильную колонку для присоединиться)

+0

@TinTran да .. был набрав ... спасибо .. я добавил группу по – scaisEdge

+0

Ошибка синтаксиса: # 1064 - У вас есть ошибка в вашем SQL синтаксис; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с * *. @scaisEdge –

+0

@PrincePrakash покажите мне весь месседж ... около ....... это часть, мне нужно ... в конце концов покажите мне точный запрос, который вы используете. – scaisEdge

Смежные вопросы