0

私は結果を持っています

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個のクエリを持つ別のテーブルがあります

上記の2つのクエリを単一のテーブルとして結合したいと思います

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を取得しています..

私のクエリで何が問題なのですか?

4

2 に答える 2

1
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
于 2012-11-03T22:21:26.847 に答える
0

いいえ..申し訳ありません..2番目のクエリで間違った列名を指定していました..解決しました..ありがとう

于 2012-11-03T22:39:12.003 に答える