Setup:PHP Codeigniter - Вступите в таблицу, если столбец не равен NULL
Codeigniter 3 работает на варианте 5 сервера PHP. Использование Query Builder для работы с db.
фона:
Создание программного обеспечения, которое имеет профиль клиента. Пользователи могут добавлять несколько заметок в профиль и связывать контакт с этой записью. Затем профиль отображает все заметки и контакт в соответствующем профиле, используя метод join()
из Query Builder Codeigniter 3.
Выпуск:
примечание может быть добавлено без клиентского контакта, в случае обобщенной ноты. Это устанавливает значение по умолчанию NULL
в БД, которое, в свою очередь, предотвращает возврат возвращаемых примечаний client_model, поскольку он не может присоединиться к таблицам.
Текущий код:
function get_client_notes($client_id)
{
$this->db->join('nh_note_types', 'nh_note_types.type_id = nh_client_notes.client_notes_type');
$this->db->join('nh_user_profiles', 'nh_user_profiles.user_profile_user_id = nh_client_notes.client_notes_added_by');
$this->db->join('nh_client_contacts', 'nh_client_contacts.client_contact_id = nh_client_notes.client_notes_client_contact_id');
$this->db->order_by("client_notes_added_date", "desc");
$query = $this->db->get_where('nh_client_notes', array('client_notes_client_id' => $client_id));
return $query;
}
В настоящее время, если значение для client_notes_client_contact_id
NULL
это будет не возвращает никаких данных для этой строки.
Что я пытаюсь выяснить, есть ли способ сделать следующее: ЕСЛИ client_notes_client_contact_id
не имеет значения null, тогда присоединитесь к таблицам, иначе продолжите мимо.
Или любым другим способом, который присоединился бы к таблицам, если есть значение, и где это NULL
, то не присоединиться.
Любая помощь приветствуется!
Непонятно, что вы просите ... ПРИСОЕДИНИТЕСЬ не для значений NULL (поскольку нуль фактически означает «нет значения»), и это работает на основе каждой строки, поэтому вы уже должны получать результаты для строк которые имеют значение, отличное от NULL. – Narf
Мой плохой, переформулировал вопрос и обновил код с полной функцией. –
@TomPearce 'join()' эквивалентно соединению MySQL, поэтому он * не будет * присоединяться к значениям, где это 'NULL', так что вам нужно это условие (' nh_client_contacts') быть 'LEFT JOIN', поэтому все еще можно найти покой? Перед возвратом '$ query' -' log_message() '' $ this-> db-> last_query() '. Сначала работайте с MySQL, затем исправьте его в построителе. – MackieeE