【问题标题】:SQL Join fetching same name rowSQL Join 获取同名行
【发布时间】:2012-02-14 10:57:52
【问题描述】:

我有 2 个表,一个连接,一个 SELECT *。两个表都包含字段id,但我需要以这种方式显式访问一个:

$query = "SELECT * FROM  #__docman as d JOIN #__users u ON d.dmmantainedby = u.id WHERE d.catid = 5 ORDER BY d.id ASC";
$db->setQuery($query);
$rows = $db->loadObjectList();

foreach($rows as $row) {
    echo $row->id ; 
}

我试过了

echo $row->d.id;

那没用..我知道我可以在技术上更改我的 SELECT 以调用 id 并使用别名,但是我要获取很多字段,因此 *。还有其他方法吗?

【问题讨论】:

  • 我们需要知道您使用什么库来访问数据库。据我所知,它既不是 mysqli 也不是 PDO

标签: php sql join


【解决方案1】:

您必须使用别名,如果您复制数据,查询将保持简短:

"SELECT *, d.id as did, u.id as uid FROM  #__docman as d JOIN #__users u ON d.dmmantainedby = u.id WHERE d.catid = 5 ORDER BY d.id ASC"

然后:

$row->did
$row->uid

【讨论】:

    【解决方案2】:

    SELECT *, d.id AS id_alias FROM ... ?这将选择重复的列,但仍然是非常短的查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多