Выберите поле таблицы дважды в Codeigniter Active Record - PullRequest
0 голосов
/ 11 апреля 2020

Я уже проверил предыдущие топи c в Stackoverflow, но не нашел правильного ответа для своей проблемы.

Я создаю галерею изображений, поэтому у меня есть таблица в моей базе данных для каждого загруженного image.

image_id | filename

Изображения могут быть предоставлены несколькими авторами / фотографами, поэтому у меня есть вторая таблица с author_id для каждого изображения

credit_id | image_id | author_id

Имя автора в другой таблице, для оптимизации структуры таблицы.

author_id | author_name

Я могу легко получить автора для каждой фотографии в галерее, используя активную запись CI

$this->db->select("
$this->table_images.image_id,
$this->table_images.filename,
$this->table_credit.credit_id,
$this->table_authors.author_name
");
$this->db->from($this->table_images);
$this->db->join($this->table_credit, "$this->table_credit.image_id = $this->table_image.image_id",'left');
$this->db->join($this->table_authors, "$this->table_authors.author_id = $this->table_credit.author_id",'left');

$query = $this->db->get();

if ($query->num_rows() > 0)
{
    return $query->row();
}
else
{
    return FALSE; 
}

Теперь проблема: каждый кредит связан не только с его вкладчик, так как изображение может быть предоставлено через другой вкладчик ... поэтому каждое изображение имеет кредит, который должен быть: авторское право x через y Список вкладчиков - это список имен авторов ... поэтому я должен использовать таблицу авторов дважды, чтобы получить имя автора и лицо, предоставившее изображение.

Итак, я создал другую таблицу со следующими данными:

credit_id | contributer_id

I Я пытаюсь выяснить выборочный запрос, чтобы получить имя автора и имя участника из той же таблицы авторов в приведенном выше запросе.

Большое спасибо за любую помощь и подсказку

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