Как использовать sum, join, order by и пункт where в mysql?

0

Итак, у меня есть две таблицы, как показано ниже:

  1. tb_custmap: idCust, idUser
  2. tb_cust: idCust, доход

Я хочу получить доход от 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 дней и все еще не могу получить правильный.

  • 0
    а также мне нужно сложить доход
  • 4
    ORDER BY идет после WHERE .
Показать ещё 1 комментарий
Теги:
codeigniter
codeigniter-3

2 ответа

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

  • 0
    большое спасибо! оно работает
-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.
  • Используйте псевдонимы таблиц, которые являются аббревиатурой имени таблицы.
  • Квалифицируйте все имена столбцов (т.е. Используйте псевдоним таблицы).
  • ? для таблицы, откуда приходит idUser.
  • :AccMgrID для параметра. Вы должны научиться использовать параметры, если вы собираетесь эффективно использовать SQL с языка программирования.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню