如何将复杂的mysql查询更改为mysql视图
我是一个mysql查询的新手,我想问一下,是否有人能帮我解决我的问题。我有一个(对我来说)复杂的sql。我想把它变成一个视图如何将复杂的mysql查询更改为mysql视图,mysql,sql,view,Mysql,Sql,View,我是一个mysql查询的新手,我想问一下,是否有人能帮我解决我的问题。我有一个(对我来说)复杂的sql。我想把它变成一个视图 SELECT username, user_id, sum(result_points) AS count_points, count(result_points) AS activity_done, ( ( SELECT count(*) FROM `activity` WHERE
SELECT
username,
user_id,
sum(result_points) AS count_points,
count(result_points) AS activity_done,
(
(
SELECT count(*) FROM `activity` WHERE periode_id = ''
) +
(
SELECT
IFNULL(sum(acs.result_points), 0)
FROM
user_activity ua
WHERE
periode_id = ''
AND ua.user_id = user_activity.user_id
AND ua.result_points IS NOT NULL
)
) AS total
FROM
user_activity
LEFT JOIN users ON users.id = user_activity.user_id
WHERE
periode_id = ''
and user_id > 0
GROUP BY user_id
ORDER BY total DESC
有没有办法去掉“where”语句,这样我仍然可以将其更改为view?如果查询正确,请创建类似view的视图
Create View data as
SELECT
username,
user_id,
sum(result_points) AS count_points,
count(result_points) AS activity_done,
(
(
SELECT count(*) FROM `activity` WHERE periode_id = ''
) +
(
SELECT
IFNULL(sum(acs.result_points), 0)
FROM
user_activity ua
WHERE
periode_id = ''
AND ua.user_id = user_activity.user_id
AND ua.result_points IS NOT NULL
)
) AS total
FROM
user_activity
LEFT JOIN users ON users.id = user_activity.user_id
WHERE
periode_id = ''
and user_id > 0
GROUP BY user_id
ORDER BY total DESC
从视图中删除where子句并在视图中添加where子句,如
select * from data where user_id > 0
使用此查询定义视图时,您是否遇到任何错误?谢谢您的回答,很抱歉,我发布了一个不明确的sql。因为问题是,我还希望periode_id也在where子句中。不仅是用户id。是否可能?将周期id添加为列,并在视图中作为用户id进行筛选