我有这两个表:
1. users
-id
-name
-email
-rank
2. pages
-user
-id
我需要从用户中选择所有数据并计算他写的页数(来自页面用户是用户表中用户的ID)。
你能把它变成一个复杂的查询吗?
答案 0 :(得分:3)
select u.*,count(p.*) from users u left join pages p on u.id=p.user group by u.id;
答案 1 :(得分:2)
我无法将其变成复杂的查询,但这里只是一个简单的问题:
SELECT u.name, u.email, u.rank, u.id, count(p.id) as 'PageCount'
FROM Users u
JOIN Pages p ON
p.id = u.id
GROUP BY u.name, u.email, u.rank, u.id
答案 2 :(得分:0)
是的,这样做:
select u.id, u.name, u.email, u.rank, count(p.id) as 'counter' from users u
inner join pages p on p.user = u.id
group by u.id, u.name, u.email, u.rank
您可以按用户信息进行分组,并计算(计算)每个用户的页数。
答案 3 :(得分:0)
这个怎么样。
select u.id, count(p.id) as 'number_of_pages_wrote'
from users u inner join pages p
on u.id = p.id
group by u.id;
答案 4 :(得分:0)
select users.id, users.name,users.email,users.rank, count(pages.id)
from users,pages
where users.id = pages.user
group by users.id
答案 5 :(得分:0)
你可以这样做 -
SELECT u.*, p.count
FROM users u,
(SELECT pa.id, count(1) FROM pages pa WHERE pa.id = u.id) p
WHERE u.id = p.id
答案 6 :(得分:0)
这个简单的查询怎么样?
SELECT user, COUNT(*) AS pages FROM page GROUP BY user
答案 7 :(得分:-1)
这可以通过JOIN
完成。
例如,
SELECT * FROM pages
INNER JOIN users ON (users.id=pages.user)
WHERE users.id=5
将从userid 5中选择所有页面。我将让你完成其余的工作以包含聚合函数;)