首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库显示错误- Webmatrix

数据库显示错误- Webmatrix
EN

Stack Overflow用户
提问于 2014-12-05 12:27:16
回答 1查看 37关注 0票数 0

我是新来这个网站的。我正在开发我的第一个包含数据库的网站。我决定按照网上找到的实验教程在Webmatrix中创建一个网站,然后创建一个显示数据的网页。我完成了数据库的创建,但现在我无法正确显示它们。下面是我目前遇到问题的代码。给出的实验室代码没有引出// PLayer.firstname to //“WHERE Players.team = Teams.teamiD";然而,当我量化它时,我没有得到一个错误,但由于某种原因,它显示了每个球队的球员。因此,如果我要添加另一支球队,每个球员将被列出4次,而不是5次。基本上,数据库包含2个表,这些表与team和teamID有关系。当我在数据库中执行一个查询来搜索球员时,它只显示他在一个球队,所以我假设这段代码现在的编写方式是循环每个球队的每个球员。有人能帮帮我吗?

代码语言:javascript
复制
   `@{  
    var db = Database.Open("Baseball");
    var selectQueryString = "SELECT * FROM Players, Teams";
        //@"SELECT TOP 10
          // Players.firstname,  
          // Players.lastname,  
          // Teams.teamname,  
          // Players.runscore
      // FROM Players, Teams  
       // WHERE Players.team = Teams.teamiD";

    }
    <!DOCTYPE html>
    <html lang="en">
    <title>Players standings</title>
    <style>
        h1 {font‐size: 20px;}
        table, th, td {
          border: solid 1px #bbbbbb;
          border‐collapse:collapse;
          padding:5px;
        }
     </style>
  </head>
  <body>
    <h1>Players' championship ‐ standings</h1>
    <table>
        <thead>
            <tr>
                <th>Players</th>
                <th>Team</th>
                <th>runscore</th>
            </tr>
        </thead>
        <tbody>
             @foreach(var row in db.Query(selectQueryString)){
             <tr>
                  <td>@row.firstname  @row.lastname</td>
                 <td>@row.teamname</td>
                  <td>@row.runscore</td>
             </tr>
            }
        </tbody>
    </table>
   </body>
    </html>`

由于名誉点的原因,我不能发布图片,但网页是这样显示的:

球员的总冠军排名

球员团队得分大卫·奥尔蒂斯金丝雀134大卫·奥尔蒂斯红袜队134大卫·奥尔蒂斯天使队134麦克·奥尔蒂斯道奇队134麦克鲑鱼道奇队132麦克鲑鱼天使132麦克鲑鱼天使132麦克鲑鱼道奇队132汉利·拉米雷斯金丝雀102汉利·拉米雷斯红袜队102汉利·拉米雷斯天使队102汉利·拉米雷斯天使队102亚西尔·普伊格红袜队4亚西尔·普伊格红袜队4亚西尔·普伊格天使队4乔希·普伊格道奇队4乔什·汉密尔顿金鱼队75乔什·汉密尔顿红袜队75乔什·汉密尔顿75道奇队75

EN

回答 1

Stack Overflow用户

发布于 2014-12-05 23:48:07

您的查询不是有用的查询。你已经告诉它让每个球员,每个团队,它做到了。它应该如何匹配一个球员和正确的团队?你没有告诉过它,所以它将每个球员与每个球队相匹配。这被称为笛卡尔连接,这可能是非常非常坏的消息。您需要添加一个关于如何将球员加入正确团队的部分。你可以通过两种方式来完成:

代码语言:javascript
复制
select *
from Players, Teams
WHERE Players.team = Teams.teamiD

这是一种“老式”的做法。更新的方法,它做完全相同的事情,但更容易阅读:

代码语言:javascript
复制
select *
from Players p
inner join Trans t on t.Id = p.teamID

查找Joins的语法。连接要么是内部连接,要么是外部连接或交叉连接,然后是左连接、右连接或全连接。Wikipedia article可能不是一个很好的起点。然后查看您正在使用的任何数据库系统的文档(我看到一个MySQL标记,所以应该是here)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27308770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档