以下のサンプルスクリプトは、withテーブルを使用して両方users
を結合し、 usersテーブルの* _id *フィールドで使用して投稿数を取得することにより、ユーザーに関連付けられた投稿の数を取得する方法を示しています。posts
LEFT OUTER JOIN
GROUP BY
SQL Fiddleでサンプルを表示するには、ここをクリックしてください。
クエリ:
CREATE TABLE users
(
_id INT NOT NULL
, name VARCHAR(30) NOT NULL
);
CREATE TABLE posts
(
_id INT NOT NULL
, _userid INT NOT NULL
, name VARCHAR(30) NOT NULL
);
INSERT INTO users (_id, name) VALUES
(1, 'user 1'),
(2, 'user 2'),
(3, 'user 3');
INSERT INTO posts (_id, _userid, name) VALUES
(1, 1, 'post 1'),
(2, 1, 'post 2'),
(3, 2, 'post 3');
SELECT u._id
, u.name
, COUNT(p._id) number_of_posts
FROM users u
LEFT OUTER JOIN posts p
ON u._id = p._userid
GROUP BY u._id;
出力:
_ID NAME NUMBER_OF_POSTS
--- ------ ---------------
1 user 1 2
2 user 2 1
3 user 3 0