Mysql 使用多个表中的计算创建SQL视图
所以我有两个表需要从中获取信息。我有一个Mysql 使用多个表中的计算创建SQL视图,mysql,sql,Mysql,Sql,所以我有两个表需要从中获取信息。我有一个 选票表(投票字符(30),用户名字符(30)),其中包含每个用户名投票给的候选人的姓名。我还有另外一张表,上面有候选人名单。我需要以某种方式返回候选人列表,该列表中的候选人姓名在同一查询中出现在选票表中的相应次数。谢谢 这是一个可怕的设计,但以下是您如何做到这一点: select count(*) as votes, vote as [candidate] from ballot_table where ucase(vote) in (
选票表(投票字符(30),用户名字符(30)),其中包含每个用户名投票给的候选人的姓名。我还有另外一张表,上面有候选人名单。我需要以某种方式返回候选人列表,该列表中的候选人姓名在同一查询中出现在选票表中的相应次数。谢谢 这是一个可怕的设计,但以下是您如何做到这一点:
select count(*) as votes, vote as [candidate]
from ballot_table
where ucase(vote) in (select ucase(item) from table_with_list_of_candidates)
group by ucase(vote)
更好的设计是让候选人列表表包含一个键,然后在选票表中使用varchar键进行写入(如果需要)。您可以使用
外部联接和分组方式来实现这一点。我假设candidate
表中的字段名为name
Select c.Name, Count(Distinct b.UserName) Votes
From ballot_table b
Right Join candidate c On c.Name = b.Vote
Group By c.Name
这将只返回您在Candidate
表中的候选人的总票数。任何其他“书面”投票都不包括在内。到目前为止,您得到了什么?请提供更多详细信息和您的代码。