Как обновить таблицу в codeigniter с помощью внутреннего соединения?

Я хочу преобразовать этот запрос Mysql в Query Builder Codeigniter

Запрос работает в mysql, но не работает в codeigniter

Mysql

UPDATE tbl_person p
INNER JOIN tbl_family_victim f  ON  p.id_person = f.id_person
SET p.active = 0
WHERE f.id_prisoners = 32;

Кодигнитер

public function delete_all($id_pris){
   $this->db->join('tbl_family f','p.id_person = f.id_person');
   $this->db->set('p.active', '0');
   $this->db->where('f.id_prisoners', $id_pris);
   $data_result = $this->db->update('tbl_person p');
   return  $data_result;
}

У вас есть ошибки в вашем sql-запросе. eversql.com/sql-синтаксис-проверка-валидатор

Andrei Lupuleasa 11.04.2019 10:22

проверьте эту ссылку, она может вам помочь stackoverflow.com/questions/42323649/…

Pragna 12.04.2019 09:02

Я применяю на практике эту ссылку, которую вы мне показываете, но не...

Javier Conrado 12.04.2019 09:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
134
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуй это,

public function delete_all($id_pris){
   $this->db->set('p.active', '0');
   $this->db->where('f.id_prisoners', $id_pris);
   $data_result = $this->db->update('tbl_person p JOIN tbl_family f ON p.id_person = f.id_person');
   return  $data_result;
}
Ответ принят как подходящий

У вас небольшая ошибка в вашем скрипте, вы пропустили псевдоним подчиненной таблицы

ВЕРСИЯ 1

public function delete_all($id_pris){
   $this->db->join('tbl_family f','p.id_person = f.id_person',"inner"); // you missed `f` here
   $this->db->set('p.active', '0');
   $this->db->where('f.id_prisoners', $id_pris);
   $data_result = $this->db->update('tbl_person p');
   return  $data_result;
}

Это должно работать нормально.

ВЕРСИЯ 2

$this->db->set('p.active', '0');
$this->db->where('f.id_prisoners', $id_pris);
$this->db->where('p.id_person = f.id_person')
$data_result = $this->db->update('tbl_family as f, tbl_person as p');
return $data_result;

ВЕРСИЯ 3

$sql = "
UPDATE tbl_person p
INNER JOIN tbl_family_victim f  ON  p.id_person = f.id_person
SET p.active = 0
WHERE f.id_prisoners = $id_pris";
$this->db->query($sql);

ВЕРСИЯ 4

$this->db->set('p.active', '0');
$this->db->where('f.id_prisoners', $id_pris);
$data_result = $this->db->update('tbl_family as f JOIN  tbl_person as p ON p.id_person = f.id_person');
return $data_result;

извини мой друг, не работает! У вас есть другая идея?

Javier Conrado 12.04.2019 08:50

Проверьте все версии моего обновленного ответа. Теперь это должно работать.

Rahul 12.04.2019 09:17

Спасибо мой друг!! ОТВЕЧАТЬ находится в ВЕРСИИ 3 !! Большое спасибо за Вашу помощь

Javier Conrado 12.04.2019 09:35

Другие вопросы по теме