Я хочу преобразовать свой запрос, имеющий подзапрос и объединение, в активный построитель запросов записей в CI и использовать его для отображения данных с помощью ajax
Я пытался использовать db-> query -> ("")но это не может быть вызвано в другой функции, чтобы ограничить результат, я также попробовал это '' 'Я попытался использовать это, например
$this->db
->select("row_number() over (order by id_monograf) nomer, id_monograf, string_agg(id_keywords::varchar,'-') keywords")
->from('bibliography.cb_keywords_monograf')
->group_by('id_monograf');
$subquery1 = $this->db->get_compiled_select();
$this->db->select("gab.* FROM (")
->select("a.judul,b.keywords, a.jenis as tipe,'Monografi' as jenis, a.tgl_buat, a.status_cantuman, a.dibuat_oleh")
->from('bibliography.cb_monograf a')
->join("($subquery1) b","a.id_monograf = b.id_monograf) gab","inner");
, но пришло сообщение об ошибке, подобное этому
SELECT gab.* FROM (, "a"."judul", "b"."keywords", "a"."jenis" as "tipe", 'Monografi' as jenis, "a"."tgl_buat", "a"."status_cantuman", "a"."dibuat_oleh" FROM "bibliography"."cb_monograf" "a" INNER JOIN (SELECT row_number() over (order by id_monograf) nomer, "id_monograf", string_agg(id_keywords::varchar, '-') keywords FROM "bibliography"."cb_keywords_monograf" GROUP BY "id_monograf") b ON "a"."id_monograf" = b.id_monograf) gab WHERE "gab"."dibuat_oleh" = 'ryanakbar'
ЭТО ВЕСЬ ЗАПРОС
SELECT gab.* FROM
(SELECT "a".judul,
"b"."keywords",
"a"."jenis" as tipe,
'Monografi' as jenis,
"a"."tgl_buat",
"a"."status_cantuman",
"a"."dibuat_oleh"
FROM "bibliography"."cb_monograf" "a"
INNER JOIN
(SELECT row_number() OVER (
ORDER BY id_monograf) nomer,
"id_monograf",
string_agg(keywords_name::varchar, '-') keywords
FROM "bibliography"."cb_keywords_monograf" "km"
INNER JOIN "bibliography"."cb_keywords" "k" ON "k"."id_keywords" = "km"."id_keywords"
GROUP BY "id_monograf") b ON "a"."id_monograf" = "b"."id_monograf"
UNION
SELECT "a".judul,
"b"."keywords",
'-' as tipe,
'Artikel' as jenis,
"a"."tgl_buat",
"a"."status_cantuman",
"a"."dibuat_oleh"
FROM "bibliography"."cb_artikel" "a"
INNER JOIN
(SELECT row_number() OVER (
ORDER BY id_artikel) nomer,
"id_artikel",
string_agg(keywords_name::varchar, '-') keywords
FROM "bibliography"."cb_keywords_artikel" "ka"
INNER JOIN "bibliography"."cb_keywords" "k" ON "k"."id_keywords" = "ka"."id_keywords"
GROUP BY "id_artikel") b ON "a"."id_artikel" = "b"."id_artikel"
UNION
SELECT "a"."judul",
"a"."url_title" as keywords,
'-' as tipe,
'Terbitan Berkala' as jenis,
"a"."tgl_buat",
"a"."status_cantuman",
"a"."dibuat_oleh"
FROM "bibliography"."cb_terbitan_berkala" "a"
) gab
WHERE "gab"."dibuat_oleh" = 'ryanakbar'
ORDER BY "gab"."tgl_buat" DESC
LIMIT 5;