This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center。
7年前关闭。
我有一个结果
这给了我列为
我还有另一个表
我想将上述两个查询作为一个表加入
我尝试过这样
现在,我将获得100行以及name和date_registered的适当值,但所有行的EmaxViews都将为NULL。
我的查询出了什么问题?
7年前关闭。
我有一个结果
select D.name as username, E.maxViews AS EmaxViews from (select A.video_id, A.uploaded_by AS username,max(B.numViews) AS maxViews,count(*) AS C from Videos A, (select video,count(*) AS numViews from Views GROUP BY video) B where A.video_id=B.video GROUP BY A.uploaded_by) E, Users D where D.username=E.username
这给了我列为
username,EmaxViews
并且给了我93行我还有另一个表
Users (username,date_registered,name)
,其中有100个查询我想将上述两个查询作为一个表加入
username, date_registered, EmaxViews
我尝试过这样
select name, date_registered,G.EmaxViews from Users F LEFT OUTER JOIN (select D.name as username, E.maxViews AS EmaxViews from (select A.video_id, A.uploaded_by AS username,max(B.numViews) AS maxViews,count(*) AS C from Videos A, (select video,count(*) AS numViews from Views GROUP BY video) B where A.video_id=B.video GROUP BY A.uploaded_by) E, Users D where D.username=E.username) G ON F.username=G.username ORDER BY F.date_registered;
现在,我将获得100行以及name和date_registered的适当值,但所有行的EmaxViews都将为NULL。
我的查询出了什么问题?
最佳答案
SELECT u.name AS username,
u.date_registered,
COALESCE
(
(
SELECT COUNT(*) cnt
FROM video v
JOIN views vw
ON vw.video = v.video_id
WHERE v.uploaded_by = u.name
GROUP BY
v.video_id
ORDER BY
cnt DESC
LIMIT 1
),
0
) AS EmaxViews
FROM users u
关于mysql - 连接具有不同行和多个选择语句的两个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13213948/
10-11 02:43