Порядок Codeigniter по тому, кто имеет максимальное значение в столбце POINTS - PullRequest
0 голосов
/ 11 мая 2018

Столбец таблицы моей компании "REV" содержит всю сумму рейтинга, и я хочу сделать заказ на основе рейтинга

public function all_company($limit, $offset)
{
$query = $this->db
->select(['id','name'])
->from('company')
->order_by('MAX(rev)', 'desc')
->get();
return $query->result();
}

Структура таблицы компаний

ID | Name | Rev
1   name1   65
2   name2   15
3   name3   96

1 Ответ

0 голосов
/ 11 мая 2018

Вы можете попробовать эту структуру таблицы и запрос для вашей проблемы:

выберите * из компании;

выберите * из company_rating;

SELECT company.id, company.company_name, MAX(company_rating.rating)
FROM company
RIGHT JOIN company_rating ON company_rating.company_id = company.id
GROUP BY company.id
ORDER BY MAX(company_rating.rating) DESC

Можете ли вы попробовать сCI Active Query:

$this->db->select('company.id, company.company_name, MAX(company_rating.rating)', false);
$this->db->from('company');
$this->db->join('company_rating c', 'company_rating.company_id = company.id', 'right');
$this->db->group_by('company.id'); 
$this->db->order_by('MAX(company_rating.rating)', 'desc');
$query = $this->db->get();
return $query->row();

, а также измените структуру таблицы, например,

CREATE TABLE  `company` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `company_name`varchar(30),
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;


INSERT INTO `company` (`company_name`) VALUES
('ABC'),
('XYZ');

CREATE TABLE  `company_rating` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `company_id` int(11),
  `rating` int(11),
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;

INSERT INTO `company_rating` (`company_id`,`rating`) VALUES
(1,2),
(1,4),
(1,5),
(2,4),
(2,7),
(2,10);

, а также посетите этот http://sqlfiddle.com

Вывод, например:

id  company_name    rating 

1   ABC              5 

2   XYZ              10

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...