【问题标题】:SQL Inner Join Issue (Could be easy fix)SQL 内部连接问题(可能很容易修复)
【发布时间】:2015-03-05 20:25:52
【问题描述】:

所以我试图通过从玩家表中获取我的 playerID 来填充下拉列表,同时与我的 Payments 表共享相同的 playerID。

当我把我的查询如下,它工作正常。

$sql = "SELECT playersID FROM players"; 

但是当我想将两个表连接在一起时,我得到一个空的下拉列表。

<?php
include "dbconnect.php"; 

$sql = "SELECT players.playersID FROM players INNER JOIN Payments ON Payments.playersID = players.playersID";


if (!$result = mysql_query($sql, $conn))
    {
        die('Error in querying the database' . mysql_error()); 
    }

echo "<br><select name = 'listbox' id = 'listbox' onclick = 'populate()'>";  

while ($row = mysql_fetch_array($result)) 
    {

        $playersID = $row['playersID'];

        $allText = "$playersID,";
        echo "<option value = '$allText'> $playersID</option>"; 
    }
echo "</select>";
mysql_close($conn); ?>

注意我以前从未做过 INNER JOIN,所以这可能是一个简单的问题。该代码的目的是将支付信息输入表单并将数据保存到数据表中。我想在付款表中显示 playerID,以显示特定玩家为此产品付款。

干杯!

【问题讨论】:

  • 发布两个表的示例数据源和CREATE TABLE 语句
  • @Alex 我事先创建了两张表,玩家表中充满了条目。付款表是一个新表,还没有条目。示例数据源,我不确定您说的是什么..
  • 我之前发现this 非常有用。
  • @BudgieBr0phy 如果您在 payments 中没有记录,那么 ON Payments.playersID = players.playersID" 会返回 0 条记录。这正是你所拥有的!
  • @Alex 对,明白了。但我想做的是通过使用表单将记录添加到支付表中,当我选择一个 playerID 时,它将在我的支付表中显示 paymentID = 1 playerID = 4 如果这有意义的话。

标签: php mysql select inner-join


【解决方案1】:

您似乎想要使用支付表而不是内部连接进行 LEFT OUTER JOIN,因为支付表还没有为所有玩家支付或根本没有为任何玩家支付。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 2018-05-06
    • 2022-06-11
    相关资源
    最近更新 更多