0

我的查询如下所示:

$sql = "
SELECT u.*, s.*
FROM bands u
inner join statuses s on u.status_id = s.id
WHERE u.status_id = 1
ORDER BY u.band_name";

我想像这样从bands表中输出 ID:

<?php while($row = $result->fetch_assoc()){ ?>
            <tr>
              <?php
                    echo '<td id="' . $row['id'] . '">This is the band</td>';
              ?>
            </tr>
<?php }

$row['id']没有输出任何东西,我猜是由于某种模棱两可的列问题,但我不确定如何正确查询它。我也尝试过$row['u.id'],但我认为这不是正确的别名使用,因为它也没有输出任何东西。

4

2 回答 2

4

您需要为 id 列创建不冲突的别名;

SELECT u.*, s.*, u.id AS uid, s.id AS sid
FROM bands u
inner join statuses s on u.status_id = s.id
WHERE u.status_id = 1
ORDER BY u.band_name

然后,您可以选择它们,$row['uid']并且$row['sid']仍然照常访问您的其他列。冲突的id列也仍然存在,只是避免使用它。

于 2012-09-19T15:55:20.977 回答
1

在相同的列名上添加别名。前任,

SELECT u.id UID,....

那么您现在可以使用其别名(例如 UID)进行检索

于 2012-09-19T15:53:40.027 回答