SQL объединить две таблицы?Выберите название категории - CodeiGniter3 - PullRequest
0 голосов
/ 20 ноября 2018

У меня проблема с базой данных.

У меня есть 3 таблицы. записная книжка б) category_notes в) домены

У меня есть domain.id в таблице domains .

В таблице ' notes ' у меня есть domain_id и notes_category_id . enter image description here

В таблице ' notes_category ' у меня есть id, notes_category_name

enter image description here

Действие сценария: сохранение заметок для данного домена.

Все работает правильно - данные сохранены и прочитаны.

Теперь я хотел бы добавить тип заметки, я уже выполнил эту функцию - но я показываю идентификатор типа заметки, а не ее имя.

Конечно, у меня дорогие отношения.

Контроллер domains.php

public function notes($id)
    {
        $this->load->model('admin/notes_model');
        $result = $this->notes_model->get_by_domain_id($id);
        echo '{"records":' . json_encode( $result ) . '}';
    }

Модель - domains_category_model.php

public function get($id = false)
{
    if ( $id == false) {

        $q = $this->db->get('notes_category');
        $q = $q->result();
    }
    else{

        $this->db->where('id', $id);
        $q = $this->db->get('notes_category');
        $q = $q->row();     
    }
    return $q;
}

Контроллер - notes_category.php

public function get($id = false)
    {
        $result = $this->notes_category_model->get($id);
        echo '{"records":' . json_encode( $result ) . '}';
    }

Контроллер - notes.php

public function get($id = false)
    {
        $result = $this->notes_model->get($id);
        echo '{"records":' . json_encode( $result ) . '}';
    }

Модель - Notes_model.php

public function get( $id = false)
    {
        if ( $id == false ) {
            $q = $this->db->get('notes');
            $q = $q->result();
        }
        else{
            $this->db->where('id', $id);
            $q = $this->db->get('notes');
            $q = $q->row();
        }
        return $q;
    }


    public function get_by_domain_id($id)
    {
        $this->db->where('id_domain_rel', $id);
        $q = $this->db->get('notes');
        $q = $q->result();

        return $q;
    }

1 Ответ

0 голосов
/ 20 ноября 2018

Если вы хотите получить имя без конфликта, используйте псевдоним в select.

$this->db->select('n.* , n.id id_noted')->from('notes n')->get()->result();
$this->db->select('*, id id_noted')->from('notes')->get()->result();

Надеюсь, я понимаю, что вы хотите сделать.

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