mysql - 在多个子查询中使用查询结果

时间:2016-08-17 09:17:29

标签: mysql subquery

为了描述我的问题,这是一个假设的场景:

(
    select user_id, stat
    from stats1
    where user_id in (select id from users where selected = 1)
)

union

(
    select user_id, stat
    from stats2
    where user_id in (select id from users where selected = 1)
)
union
(
    select user_id, stat
    from stats3
    where user_id in (select id from users where selected = 1)
)
# and so on ...

查看'在'中的查询方式多次使用。我想保存此查询的结果,然后使用它。在所有其他查询中。显然,如果通过在PHP中运行该查询然后传入值,这很容易实现,但这纯粹可以在MySQL中实现吗?

1 个答案:

答案 0 :(得分:0)

您可以为所选用户创建永久视图

lst.OrderBy(x=>x.Split(' ')[1]);

然后,当您需要它时,您的语法将更容易和更轻松

CREATE VIEW selectedUsers AS SELECT id FROM users WHERE selected = 1;

如果表用户中的数据在请求期间没有更改,则每次需要查看时数据库引擎都应使用缓存

以下是MySQL Views documentation