不确定我的逻辑在这个问题上是否正确。我有一个表Documents
,其中每个项目都有一个唯一的 ID 和文档的名称。然后我有另一个表DocVotes
存储用户对文档的投票(每条记录一个投票)有一个字段Vote
是BOOL
(1 表示是,0 表示否)。
我正在尝试检查特定用户MemberID
之前是否对文档进行过投票,显然您不能对自己的文档进行投票(通过排除检查AuthorID
)
这是我正在尝试的查询
SELECT d.ID, d.Name, COUNT(dv.MemberID)
FROM Documents AS d
LEFT JOIN DocVotes AS dv ON dv.ItemID=d.ID
AND dv.MemberID=32
WHERE d.Status = 'Proposed'
AND d.AuthorID<>32
我认为它应该做什么:获取ID
, Name
, 并计算投票的数量MemberID
(在这种情况下为 32)然后简单地检查计数,如果计数为 0 那么这意味着用户还没有投票,如果1 然后他们有(您只能投票一次)。
但是,我得到了 6 的计数,但该用户仅在此特定文档上投了 1 票。所以很明显,这比那个条目更重要......(我只得到 1 行回来)
想法?