由于INNER JOIN

时间:2018-01-25 09:59:12

标签: php

我不知道如何解释我的问题,所以在这里

  1. 我有一个名为asalink的表,其代码链接到名为asatbl
  2. 的表中的名称
  3. 我正在加入表格,但由于键不同而需要相同的字段显示两次
  4. 请参阅我的代码也许这会更好地解释

        $sele = "SELECT asatbl_1.asaName, asatbl_1.asaSurname, asatbl.asaName, asatbl.asaSurname, asalink.linkammount
    FROM asatbl AS asatbl_1 INNER JOIN (asalink INNER JOIN asatbl ON asalink.asaid = asatbl.asaid) ON asatbl_1.asaSales_ref = asalink.asaSales_ref
    WHERE asalink.asaSales_ref=1001";
        $result = mysql_query($sele);
    
    echo "<table border='1' cellpadding='10'>";
        echo "<tr> <th>ASA Name</th> <th>ASA Surname</th> <th>Recipient Name</th> <th>Recipient Surname</th> <th>Amount</th></tr>";
    
    
        if($mak = mysql_num_rows($result) > 0){
            while($row = mysql_fetch_assoc($result)){
    echo "<tr>";
            echo '<td>' . $row['asaName'] . '</td>';
            echo '<td>' . $row['asaSurname'] . '</td>';
            echo '<td>' . $row['asatbl_1.asaName'] . '</td>';
            echo '<td>' . $row['asatbl_1.asaSurname'] . '</td>';
            echo '<td>' . $row['li nkammount'] . '</td>';
            echo '<td><a href="edit.php?id=' . $row['id'] . '">Edit</a></td>';
            //echo '<td><a href="deleteuser.php?id=' . $row['id'] . '">Delete</a></td>';
            echo "</tr>"; 
    

    你可以看到我使用asatbl_.asaName和asatbl_1.Surname但不起作用

    提前感谢您的帮助

    此致

2 个答案:

答案 0 :(得分:0)

在结果中使用字段名称的别名:

SELECT asatbl_1.asaName as fld1, asatbl_1.asaSurname as fld2, ... and so on. 

然后检索数据引用结果集中的别名

$row['fld1'] 
$row['fld2']
...

希望这有帮助

答案 1 :(得分:0)

我发现您尝试使用$row['asatbl_1.asaName']$row['asatbl_1.asaSurname']获取字段值的方式存在问题。您必须通过删除列名称前的表名来简单地使用$row['asaName']$row['asaSurname']

在PHP中运行任何SQL查询后,如果使用。(点)通过像{ - 1}这样的符号来获取带有表名的列,则不应访问PHP查询结果中的列值,并且表名前缀为您在SELECT **table_name.column_name** FROM table_name$row['asatbl_1.asaName']中执行的操作。