所以我有这些表格。
此表存储喜欢:
Table Name: Action
Id Creator Type Target <--- The `Target` here is the `Id` in Posts
1 1 like 1
2 2 like 1
3 3 like 1
4 1 like 2
此表存储帖子:
Id Creator
1 1
2 2
任何表格中的列名Creator
都是指Id
表格中的Account
列(此处未显示)。
我想选择已经提供给帐户帖子的喜欢总数。 我已经尝试了下面的查询,但它给出了语法错误。
SELECT count(`Id`) AS Check FROM `Action` WHERE `Type`='like' AND `Target`= (SELECT `Id` FROM `Posts` WHERE `Creator` = '1');
我不确定JOIN子句在这里是否更合适。
答案 0 :(得分:1)
您将获得两个表和GROUP BY
的连接并计算相应目标的总和。
SELECT
p.creator,
COUNT(a.target)
FROM
posts p
INNER JOIN
Action a
ON
a.target = p.id
WHERE
a.Type = 'like' AND p.creator = 1
GROUP BY
p.creator;
答案 1 :(得分:0)
这是SQL
select a.ID,a.Creator,a.Type,a.Target, Count(p.*)Total
from Action a
join posts p on a.Target=p.Creator
where
a.Type='like'
and a.Target=1;