如何在 mysql 中使用 sum、join、order by 和 where 子句?
How to use sum, join, order by and where clause in mysql?
所以我有如下两个表格:
- tb_custmap: idCust, idUser
- tb_cust:idCust,收入
我想根据 idCust 并且仅从特定的 idUser 获得来自 tb_cust 的收入。我试过这个:
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."'
但是我得到了错误,据说
"You have an error in your SQL syntax; check the manual that
corresponds to your MariaDB server version for the right syntax to use
near 'WHERE idUser='azkyath'' at line 1 "
请有人帮助我,我已经做了 2 天了,但仍然找不到合适的。
你应该这样写查询:
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
. 之前
- 使用 table 别名,即 table 名称的缩写。
- 限定所有列名(即使用 table 别名)。
?
用于 table,其中 idUser
来自。
:AccMgrID
用于 参数 。如果您要通过编程语言有效地使用 SQL,您应该学习如何使用参数。
希望对您有所帮助:
使用 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
所以我有如下两个表格:
- tb_custmap: idCust, idUser
- tb_cust:idCust,收入
我想根据 idCust 并且仅从特定的 idUser 获得来自 tb_cust 的收入。我试过这个:
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."'
但是我得到了错误,据说
"You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE idUser='azkyath'' at line 1 "
请有人帮助我,我已经做了 2 天了,但仍然找不到合适的。
你应该这样写查询:
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
. 之前
- 使用 table 别名,即 table 名称的缩写。
- 限定所有列名(即使用 table 别名)。
?
用于 table,其中idUser
来自。:AccMgrID
用于 参数 。如果您要通过编程语言有效地使用 SQL,您应该学习如何使用参数。
希望对您有所帮助:
使用 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