Запрос CodeIgniter SELECT для дисквалификации записей в одной таблице на основе другой таблицы [дубликат]Php

Кемеровские программисты php общаются здесь
Anonymous
Запрос CodeIgniter SELECT для дисквалификации записей в одной таблице на основе другой таблицы [дубликат]

Сообщение Anonymous »

У меня есть две таблицы: User_Heroes и Heroes.
Таблица Heroes содержит всех героев, которых пользователь может выбрать во время игры (которые принадлежат его фракции), а User_Heroes — это таблица героев, которых пользователь уже завербовал себе на службу.
Я хочу сделать запрос который возвращает список героев, которых нет в штате текущего пользователя.
Чтобы просто получить их всех, я бы сделал это

Код: Выделить всё

public function get_faction_heroes($sUser, $hero_faction)
{
$oQuery = $this->db
->select('id,hero_name,hero_faction,hero_type,hero_cost,hero_maintenance,hero_allowed')
->like('hero_faction', $hero_faction)
->get('heroes')
->result();
return $oQuery;
}
В настоящее время у меня есть следующий запрос, но, очевидно, он неверен, поскольку он не возвращает список, как я ожидаю.

Код: Выделить всё

public function get_faction_heroes($sUser, $hero_faction)
{
$oQuery = $this->db
->select('h.id,h.hero_name,h.hero_faction,h.hero_type,h.hero_cost,h.hero_maintenance,h.hero_allowed')
->like('h.hero_faction', $hero_faction)
->where_not_in('u.hero_id', $sUser)
->where('h.hero_allowed >', 1)
->join('user_heroes u', 'u.hero_id = h.id', 'left')
->get('heroes h')
->result();
return $oQuery;
}
Как вы могли заметить, некоторых героев можно нанимать несколько раз (hero_allowed > 1).
Возможно, чтобы еще больше прояснить таблицу, я добавил два изображения в текущие таблицы.
Изображение

Изображение


Подробнее здесь: https://stackoverflow.com/questions/332 ... nother-tab

Вернуться в «Php»