За последние 24 часа нас посетили 49194 программиста и 1805 роботов. Сейчас ищут 942 программиста ...

Объеденить два запроса в один

Тема в разделе "MySQL", создана пользователем Matvej7, 28 янв 2019.

  1. Matvej7

    Matvej7 Новичок

    С нами с:
    28 янв 2019
    Сообщения:
    2
    Симпатии:
    0
    Всем привет, прошу не кидать камнями, PHP изучаю меньше месяца, появилась проблема - написал скрипт генерации урлов, скрипт задевает 4 таблицы(SELECT) и 2 таблицы(INSERT). На сайтах с маленьким количеством категорий скрипт отрабатывает на ура, но как дело доходит до титинов - дает сбой. Суть вопроса в чем
    PHP:
    1. $oc_1 = $this->db->query("SELECT id FROM table_1")
    2. $part_1 = $oc_1->rows;
    3. foreach($part_1 as $val){
    4. $val['id'];
    5. }
    6. $oc_2=$this->db->query("SELECT status FROM table_2 WHERE  table_2.id = '".$val['id']."' ")
    Часть кода скрипта, можно ли эти два запроса объеденить в один? Если да то как? Спасибо.
     
  2. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    Как то так, я давно с CI не работал.
    PHP:
    1. $this->db->select('status');
    2. $this->db->where("id  IN (SELECT id FROM table_1)");
    3. $query = $this->db->get('table_2');
    Или через join
    PHP:
    1. $this->db->select('status');
    2. $this->db->from('table_2');
    3. $this->db->join('table_1', 'table_1.id = table_2.id');
    4. $query = $this->db->get();
    Поправишь там сам, скорее всего есть ошибка