如何在 mysql 中使用 sum、join、order by 和 where 子句?



所以我有两个表格,如下所示:

  1. tb_custmap:idCust,idUser
  2. tb_cust:idCust,收入

我想从基于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 天,但仍然无法找到合适的。

希望这会对您有所帮助:

使用 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

你应该像这样编写查询:

SELECT c.revenue
FROM tb_custmap cm INNER JOIN
tb_cust c
ON cm.idCust = c.idCust
WHERE ?.idUser = :AccMgrID
ORDER BY c.revenue;

笔记:

  • WHEREFROM之后和ORDER BY之前。
  • 使用作为表名缩写的表别名。
  • 限定所有列名(即使用表别名(。
  • ?用于idUser来自的表。
  • :AccMgrID用于参数。 如果要从编程语言有效地使用 SQL,您应该学习如何使用参数。

相关内容

  • 没有找到相关文章

最新更新