-3

このクエリでエラーが発生しています。何が悪いのかわかりません。助けていただければ幸いです。

SELECT Email, UserID, FirstName, LastName,
count(*) as userTextCount FROM user LEFT JOIN posts ON posts.PostedAsId = user.UserID and
PostedAs = 'USER' and PostType = 'text',
count(*) as userMediaCount FROM user LEFT JOIN posts ON posts.PostedAsId = user.UserID and
PostedAs = 'USER' and PostType = 'media'
WHERE 1
GROUP BY Email, UserID, FirstName, LastName

エラー:

#1064 - You have an error in your SQL syntax; 
MySQL server version for the right syntax to use near 'count(*) as userMediaCount FROM
user LEFT JOIN posts ON posts.PostedAsId = user.' at line 3

User テーブルには、Email、UserId、FirstName、LastName が含まれており、posts テーブルにはすべての投稿が含まれており、特定のユーザーごとに投稿をカウントする必要があります。

ありがとう。

4

3 に答える 3

0

これを試すことができます.postTypeメディアを含む1行と投稿タイプテキストを含む別の行が得られます.ビジネスレイヤーでそれらを扱うことができます.

SELECT Email, UserID, FirstName, LastName, PostType, count(PostType)
FROM user LEFT JOIN posts ON posts.PostedAsId = user.UserID 
WHERE PostedAs = 'USER' and PostType = 'media' OR  PostType = 'text'
GROUP BY Email, UserID, FirstName, LastName
于 2013-11-01T15:24:04.920 に答える
0
SELECT
    Email,
    UserID,
    FirstName,
    LastName,
    PostedAs,
    PostType
FROM
    user
    LEFT JOIN posts ON posts.PostedAsId = user.UserID
WHERE
    PostedAs = 'USER'
    AND PostType IN ('text', 'media')

正確に必要なものを教えてください。たぶん、このクエリが始まりになるでしょう。

于 2013-11-01T15:25:31.900 に答える