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')