下面给出的示例脚本演示如何使用LEFT OUTER JOIN
加入两个users
和posts
表来获取与用户相关联的帖子的数量和然后在用户表中的* _id *字段上使用GROUP BY
来获取帖子数。
Click here to view the sample in 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
+1好日常问题 – 2012-04-29 14:44:37
如何?我是新手 – user4o01 2012-04-29 14:48:45