我有来自多个国家/地区的预订表(例如: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');
但这也给我零结果,任何帮助?提前致谢
答案 0 :(得分:0)
删除
'p_results'
来自你的
FROM
条款,因为您在此之后加入。
答案 1 :(得分:0)
不确定这是否是最好的处理方式,但我通过生成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;
这段代码给了我一个需要在我的视图中显示的组合数据