Итак, у меня есть две таблицы, как показано ниже:
Я хочу получить доход от tb_cust на основе idCust и только от определенного 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, для правильного синтаксиса для использования рядом с" WHERE idUser = "azkyath" в строке 1 "
Пожалуйста, помогите мне, я делаю это в течение 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;
Заметки:
WHERE
идет после FROM
и до ORDER BY
.?
для таблицы, откуда приходит idUser
.:AccMgrID
для параметра. Вы должны научиться использовать параметры, если вы собираетесь эффективно использовать SQL с языка программирования.
ORDER BY
идет послеWHERE
.