-4
私は、次の表があります。MySQLの - カウントログインしたチームメンバー
CREATE TABLE members ( member_id int(1) unsigned NOT NULL AUTO_INCREMENT, logged_in tinyint(1) NOT NULL, PRIMARY KEY (member_id), UNIQUE KEY member_id (member_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO members (member_id, logged_in) VALUES (1, 0), (2, 1), (3, 1), (4, 1), (5, 0); +-----------------------+ | members | +-----------+-----------+ | member_id | logged_in | +-----------+-----------+ | 1 | 0 | | 2 | 1 | | 3 | 1 | | 4 | 1 | | 5 | 0 | +-----------+-----------+
CREATE TABLE team_members ( team_id int(1) unsigned NOT NULL, member_id int(1) unsigned NOT NULL, PRIMARY KEY (team_id,member_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO team_members (team_id, member_id) VALUES (1, 1), (1, 2), (2, 3), (2, 4), (3, 5); +---------------------+ | team_members | +---------+-----------+ | team_id | member_id | +---------+-----------+ | 1 | 1 | | 1 | 2 | | 2 | 3 | | 2 | 4 | | 3 | 5 | +---------+-----------+
そして、これは私が達成するために必要な出力です:
+---------+-----------------------+ | team_id | logged_in_users_count | +---------+-----------------------+ | 1 | 1 | | 2 | 2 | | 3 | 0 | +---------+-----------------------+
を私は次のSQLをしようとしていますがクエリーは期待された出力を返していません。
SELECT tm.team_id, (SELECT COUNT(m.logged_in) FROM members m WHERE m.logged_in = 1) AS logged_in_users_count FROM members m INNER JOIN team_members tm ON (m.member_id = tm.member_id) GROUP BY tm.team_id
お試しください! – Jeremy
-1あなたに資格のある回答を与えるだけの情報がありません。あなたがログインしたときの情報の保存方法、試したことなど。完全な情報を表示すると、より良い結果が得られます。 – Justin
スキーマと必要な出力がリストされているので、唯一の欠落しているステップはクエリを書くことです。ここには文字通り疑問はありません。だから、私はあなたがSQLを書くことになっていることを確認したいと思っています。はい、あなたはSQLを書くことができます。 –