【问题标题】:Codeigniter JOIN - not a unique table/alias issueCodeigniter JOIN - 不是唯一的表/别名问题
【发布时间】:2017-09-19 15:47:02
【问题描述】:

我有来自多个国家/地区的预订表(例如:book_uk),这些表包含有关我们在不同国家/地区的客户的信息,例如姓名、地址等。然后在我的结果表中,我有该客户进行的所有测试的结果已经,信息通过 PIN 码“链接”,例如 336699,此号码在 book_uk 表和结果表中都被引用。

我想做的是从 book_uk 表中选择所有数据,然后将每一行链接到结果表(PIN 匹配的位置),但我一直没有得到唯一的表/别名,这是我的模型代码:

$database->select($new_country_columns)
     ->from($country_table);
$database->select($p_results_cols)
     ->from($table);
$database->join('p_results', $join, 'inner');

$database 在前面的模型中定义

产生这个错误:

Error Number: 1066

Not unique table/alias: 'p_results'

SELECT `book_uk`.`pin`, `book_uk`.`clinic`, `book_uk`.`dob`, `book_uk`.`gender`, `book_uk`.`country`, `book_uk`.`order_date`, `p_results`.`pin`, `p_results`.`code`, `p_results`.`name`, `p_results`.`result` FROM (`book_uk`, `p_results`) INNER JOIN `p_results` ON 'book_uk.pin = p_results.pin'

Filename: C:/xampp/htdocs/projects/b2k-stat/system/database/DB_driver.php

Line Number: 691

我真正需要做的是从 book_uk 中选择数据,然后在结果表上运行 foreach 循环并将任何具有匹配 PIN 的数据添加到结果数组中,我不知道该怎么做,我试图循环它带有一个 foreach 循环,但它一直空白,我也尝试过:

$database->select($new_country_columns)
     ->from($country_table)
     ->join('p_results', $join, 'inner');

但这也给了我零结果,有什么帮助吗?提前致谢

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    删除

    'p_results' 
    

    来自你的

    FROM 
    

    条款,因为您在那之后加入它。

    【讨论】:

      【解决方案2】:

      不确定这是否是最好的处理方式,但我通过生成 2 个查询并在 foreach 循环内对两个查询运行 IF 语句解决了我的问题,如下所示:

      $database->select($new_country_columns)
           ->from($country_table);
      $query1 = $database->get()->result_array();
      $p_results->select($p_results_cols)
           ->from($table);
      $query2 = $p_results->get()->result_array();
      
      foreach($query1 as $row){
          foreach($query2 as $rows) {
              if($row['pin'] === $rows['pin']) {
                  $new_row = array_merge($row, $rows);
                  $query[] = $new_row;
              }
         }
      }
      return $query;
      

      这段代码给了我一个需要在我的视图中显示的组合数据数组

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-24
        相关资源
        最近更新 更多