2017-01-13 17 views
0

私はオフィスの名前と共に各オフィスで働くスタッフの数を表示しようとしていますが、動作させることはできません。私はこの各オフィスの従業員の数を見つける - Mysql

select count(*) as count,office_staff.staff_id 
from staff 
inner join office_staff on staff.staff_id = office_staff.staff_id 
group by staff.staff_id 

を試してみましたが、私は取得しています出力はこれです:誰もがそれを手伝ってくれる

# count, staff_id 
'1', '1001' 
'1', '1002' 
'1', '1003' 
'1', '1004' 
'1', '1005' 
'1', '1006' 

テーブル

-- ----------------------------------------------------- 
-- Table `mydb`.`staff` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `mydb`.`staff` (
    `staff_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `office_id` INT(10) UNSIGNED NOT NULL, 



-- ----------------------------------------------------- 
-- Table `mydb`.`office_staff` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `mydb`.`office_staff` (
    `office_staff_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `staff_id` INT(10) UNSIGNED NOT NULL, 
    `office_id` INT(10) UNSIGNED NOT NULL, 
    ` 


-- ----------------------------------------------------- 
-- Table `mydb`.`offices` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `mydb`.`offices` (
    `office_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `address_id` INT(10) UNSIGNED NOT NULL, 

?ありがとう!私はあなたがあなたのoffices表の列を持っていると仮定してい

答えて

0

の使用オフィスidが(あなたの構造がカットオフ)Nameと呼ばれます。私はNameを引っ張ってる理由は、この行は次のとおりです。

私はスタッフが事務所とともに、各事業所で働く何を表示しようとしています。これは、あなたがする必要があるすべてである必要があり

に名前を付けます行う(必要に応じて、列名を変更):

Select O.Name As OfficeName, 
     Count(*) As count 
From staff  S 
Join office_staff OS On S.staff_id = OS.staff_id 
Join office  O On O.Office_Id = OS.Office_Id 
Group By O.Name 
0

代わりstaff_id

select count(*) as count, office_staff.office_id 
    from staff 
    inner join office_staff on staff.staff_id = office_staff.staff_id 
    group by office_staff.office_id 
+0

@us er7416728私の答えが正しいのであれば、受け入れられたとマークしてください...どうぞこちらをご覧ください http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – scaisEdge

0

試してみてください。

select count(*) as count,office_id 
from staff, office_staff 
inner join office_staff on staff.staff_id = office_staff.staff_id 
group by office.id 
関連する問題