-4

次のテーブルがあります。

CREATE TABLE メンバー (
  member_id int(1) unsigned NOT NULL AUTO_INCREMENT,
  Logged_in tinyint(1) NOT NULL,
  主キー (member_id)、
  UNIQUE KEY member_id (メンバーID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO メンバー (member_id、logged_in) 値
  (1, 0),
  (2, 1),
  (3, 1),
  (4, 1),
  (5,0);

+ -----------------------+
| | メンバー |
+----------+-----------+
| | メンバーID | ログイン済み |
+----------+-----------+
| | 1 | 0 |   
| | 2 | 1 |
| | 3 | 1 |
| | 4 | 1 |
| | 5 | 0 |
+----------+-----------+
CREATE TABLE team_members (
  team_id int(1) 符号なし NOT NULL,
  member_id int(1) 符号なし NOT NULL,
  PRIMARY KEY (チーム ID、メンバー ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO team_members (team_id, member_id) 値
  (1, 1),
  (1, 2),
  (2, 3),
  (2, 4),
  (3, 5);

+---------------------+
| | チームメンバー |
+---------+-----------+
| | チーム ID | メンバーID |
+---------+-----------+
| | 1 | 1 |
| | 1 | 2 |
| | 2 | 3 |
| | 2 | 4 |
| | 3 | 5 |
+---------+-----------+

そして、これは私が達成する必要がある出力です:

+---------+-----------------------+
| | チーム ID | login_in_users_count |
+---------+-----------------------+
| | 1 | 1 |
| | 2 | 2 |
| | 3 | 0 |
+---------+-----------------------+

次のSQLクエリを試していますが、期待される出力が返されません:

選択する
  tm.team_id、
  (SELECT COUNT(m.logged_in) FROM members m WHERE m.logged_in = 1) AS logged_in_users_count
から
  メンバー
  INNER JOIN team_members tm ON (m.member_id = tm.member_id)
グループ化
  tm.team_id
4

1 に答える 1

2
選択する
 team_members.team_id,
 COUNT(members.logged_in)
から
 team_members LEFT JOIN メンバー
 オン (team_members.member_id = members.member_id AND members.logged_in = 1)
グループ化
  team_members.team_id;
于 2012-04-27T14:33:36.483 に答える