所以我有两个如下表:
我想基于idCust从tb_cust中获得收入,而仅从特定的idUser中获得收入。我已经尝试过了:
SELECT tb_cust.revenue
FROM tb_custmap INNER JOIN
tb_cust
ON tb_custmap.idCust = tb_cust.idCust
ORDER BY tb_cust.revenue
WHERE idUser='".$AccMgrID."'
但是我得到了错误,据说
“您的SQL语法有误;请查看 对应于您的MariaDB服务器版本,以使用正确的语法 在第1行“
上的'WHERE idUser ='azkyath'附近
请有人帮助我完成2天,但仍然找不到合适的人。
答案 0 :(得分:0)
希望这对您有帮助:
使用CI查询构建器来做到这一点
/*if you want to use `sum` use this instead of select
$this->db->select_sum('tb_cust.revenue');
*/
$this->db->select('tb_cust.revenue');
$this->db->from('tb_custmap');
$this->db->join('tb_cust' , 'tb_cust.idCust = tb_custmap.idCust');
/*In where clause replace `table` name also with the correct table name
from where `idUser` column belongs to
*/
$this->db->where('table.idUser', $AccMgrID);
$this->db->order_by('tb_cust.revenue','ASC');
$query = $this->db->get();
if ( $query->num_rows() > 0 )
{
print_r($query->result());
}
更多信息:https://www.codeigniter.com/user_guide/database/query_builder.html#selecting-data
答案 1 :(得分:-1)
您应该这样编写查询:
SELECT c.revenue
FROM tb_custmap cm INNER JOIN
tb_cust c
ON cm.idCust = c.idCust
WHERE ?.idUser = :AccMgrID
ORDER BY c.revenue;
注意:
WHERE
在FROM
之后并在ORDER BY
之前。?
用于idUser
所在的表格。:AccMgrID
用于参数。如果要通过编程语言有效使用SQL,则应该学习如何使用参数。