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
表中的候选人的总票数。任何其他“书面”投票都不包括在内。

到目前为止,您得到了什么?请提供更多详细信息和您的代码。