MySQL Случай, когда тогда предложение

$this->db->select('a.diskusi_id, a.topik_id, a.diskusi_komentar, a.diskusi_file, a.pengguna_id');

$this->db->select('CASE WHEN a.pengguna_id LIKE "mhs%" THEN (select f.mahasiswa_id, f.mahasiswa_nama, f.mahasiswa_nim) WHEN a.pengguna_id LIKE "dos%" THEN (select g.dosen_id, g.dosen_nama, g.dosen_nidn)');

$this->db->where('CASE WHEN a.pengguna_id LIKE "mhs%" THEN a.pengguna_id = f.mahasiswa_id WHEN a.pengguna_id LIKE "dos%" THEN a.pengguna_id = g.dosen_id');

$query = $this->db->get('diskusi a, mahasiswa f, dosen g');

Это дало ошибку:

рядом с «Дискуси а, Махасисва ф, дос г»

Я хочу рассказать, что если a.pengguna_id like "mhs%" затем взять данные из mahasiswa f и если a.pengguna_id like "dos%" затем взять данные из dosen g,
Я использую Codeigniter, но если у вас есть некоторые исправления в синтаксисе SQL, я постараюсь понять.

0

Решение

Попробуйте профилировать вашу модель с

$this->output->enable_profiler(TRUE);

Синтаксис проверки SQL с результатом запроса.

0

Другие решения

добавлять FALSE с вашим выбранным утверждением, как это select('a.diskusi_id, a.topik_id, a.diskusi_komentar, a.diskusi_file, a.pengguna_id', FALSE);& проверь что получится Если вы хотите использовать составной оператор выбора, вам нужно использовать FALSE в качестве второго параметра.

0