Codeigniter SQL Join запрос не возвращает данные, которые я хочу - PullRequest
1 голос
/ 31 января 2012

У меня следующий запрос с использованием CodeIgniter. Мне нужен список, содержащий по одной строке для каждой группы, и я хочу, чтобы строка включала статус liveBlogGroupRecord, если он равен "1".

Сейчас я либо получаю только строки для групп, которые имеют liveBlogGroupRecord=1, либо, если я закомментирую эту строку, я получаю несколько строк группы из одной и той же группы, поскольку в таблице blogGroups есть несколько старых значений, которые имеют liveBlogGroupRecord=0.

$this->db->select('*');
$this->db->from('groups');
$this->db->join('blogGroups', 'groups.groupID = blogGroups.groupID', 'left');
$this->db->where('blogGroups.blogID', $blogID);
$this->db->where('blogGroups.liveBlogGroupRecord', 1);
$query = $this->db->get();

Ответы [ 2 ]

1 голос
/ 01 февраля 2012

Будьте осторожны с SELECT *.Предполагая, что обе ваши таблицы blogGroups и groups имеют id (или другой столбец с тем же именем), только первая будет возвращена, когда вы JOIN используете другую таблицу.

Выборочно выберите, какие столбцы вам нужны.Попробуйте что-то вроде этого:

$this->db->select('groups.*');

/* And more selectively, whichever elements you have from `blogGroups` that you need (I have no idea what those are) */
$this->db->select('blogGroups.name');
$this->db->select('blogGroups.description');
$this->db->select('blogGroups.category');
/* etc */
0 голосов
/ 31 января 2012

как насчет добавления $this->db->limit(1); перед $query = $this->db->get();

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