Попытка вложенного JOIN с использованием построителя запросов CodeIgniter создает недопустимый запрос.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Попытка вложенного JOIN с использованием построителя запросов CodeIgniter создает недопустимый запрос.

Сообщение Anonymous »

У меня возникла проблема с преобразованием приведенного ниже оператора в код моей модели в рамках CodeIgniter.

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

SELECT
mt_prs_groups.groupId,
mt_prs_groups.groupName,
mt_prs_administrators.administratorId
FROM
mt_prs_status
INNER JOIN
(mt_prs_administrators
INNER JOIN mt_prs_groups
ON mt_prs_administrators.administratorId = mt_prs_groups.administratorId
) ON (mt_prs_status.statusId = mt_prs_groups.statusId)
AND (mt_prs_status.statusId = mt_prs_administrators.statusId)
WHERE
(
((mt_prs_status.status)="Active")
AND (
(mt_prs_administrators.administratorId)=3
)
)
OR (((mt_prs_administrators.administratorId)=4));

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

On the model I have translated this to

```php
$this->db->select('mt_prs_groups.groupId, mt_prs_groups.groupName');
$this->db->from('mt_prs_status');
$this->db->join('mt_prs_administrators', 'inner');
$this->db->join('mt_prs_groups', 'mt_prs_administrators.administratorId = mt_prs_groups.administratorId AND mt_prs_status.statusId = mt_prs_administrators.statusId', 'inner');
$this->db->where('mt_prs_status.status="Active"');
$this->db->where('mt_prs_administrators.administratorId=3');
$this->db->or_where('mt_prs_administrators.administratorId=4');
Это дает мне ошибку ниже.

Номер ошибки: 1054
Неизвестный столбец «внутренний» в «предложении from»
SELECT mt_prs_groups., mt_prs_groups.

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

groupName
ОТ

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

mt_prs_status
ПРИСОЕДИНЯЙТЕСЬ к mt_prs_administrators ИСПОЛЬЗУЙТЕ () INNER
ПРИСОЕДИНИТЬСЯ к mt_prs_groups НА mt_prs_administrators.

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

administratorId
=

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

mt_prs_groups.administratorId
AND mt_prs_status.

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

statusId
=

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

mt_prs_administrators.statusId
ГДЕ mt_prs_status. =
"Активный" И mt_prs_administrators.

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

administratorId
= 3 ИЛИ

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

mt_prs_administrators.administratorId
= 4

Запрос выполняется хорошо, когда я помещаю его непосредственно в MySQL, но не работает в Codeigniter. Проблема в том, что внутреннее соединение зависит от другого внутреннего соединения.

Подробнее здесь: https://stackoverflow.com/questions/406 ... alid-query
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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