开发者

How can I rewrite subquery inside JOIN?

I'm not very fluent in SQL and my question is how can I rewrite the following statement to make it look more natural. The select I'm trying to write joins two tables -- "users" and "stats" -- and I know id's of users in advance. It's probably something very basic but I'm not an SQL ninja yet.

select
    u.id,
    sum(s.xxx)
from
    (
        select id from users where id in (100, 200, 300)
    ) u
    left join
    stats s
        on u.id = s.user_id
group by
    u.id
;

The part that looks strange is

    (
        select id from users where i开发者_StackOverflowd in (100, 200, 300)
    ) u

Suggest me the right way. Thanks


That's a complicated way of saying

....WHERE id in (100,200,300)

In your WHERE clause.

The whole thing could be rewritten as:

select
    u.id,
    sum(s.xxx)
from
    users u
left join stats s
    on s.user_id = u.id
where u.id in (100, 200, 300)
group by
    u.id
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜