Mysql 加入查询的问题

Mysql 加入查询的问题,mysql,sql,Mysql,Sql,我在这个查询中遇到了错误。 我不知道这是怎么回事。 我们将不胜感激 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

我在这个查询中遇到了错误。 我不知道这是怎么回事。 我们将不胜感激

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
用户表包含:Email、UserId、FirstName、LastName和posts表包含所有帖子,我需要按特定用户统计帖子


谢谢。

您可以尝试使用条件计数,它可以是这样的

SELECT Email, UserID, FirstName, LastName,
       SUM(CASE WHEN PostedAs = 'USER' and PostType = 'text' THEN 1 ELSE 0) userTextCount,
       SUM(CASE WHEN PostedAs = 'USER' and PostType = 'media' THEN 1 ELSE 0) userMediaCount,
  FROM user u LEFT JOIN posts p
    ON p.PostedAsId = u.UserID 
 GROUP BY Email, UserID, FirstName, LastName


你可以试试这个,它会给你一行和postType媒体,另一行和postType文本,你可以在你的业务层处理它们

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

你应该告诉我们你到底需要什么。也许这个查询将是一个开始。

发布更多详细信息、表结构、错误、数据…编辑了问题…因此这是无效的基本语法,原因很多。我认为第一步需要阅读一篇关于查询语法的参考文献。你在这里做了什么?这真是一团糟。等等,你是说你知道OP想要完成什么吗?@user2696691有用吗?你的问题需要更多的帮助吗?
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
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')