Я использую CodeIgniter. Моя база данных - MySQL 5. Приведенный ниже оператор SQL работает нормально, но я думаю, что он не будет действительно совместим с MSSQL, PG и другими. Мне интересно, возможно ли реализовать оператор с использованием класса Active Record в CI, следовательно, сделать его полностью кросс-базы данных?
Я думаю, что "GROUP_CONCAT" - это то место, где я упаду ...
РЕДАКТИРОВАТЬ - Найдено на плате CodeIgniter
"Следует отметить, однако, что
CONCAT зависит от базы данных. Это не
на самом деле часть активной записи
библиотека, хотя я уверен, что это
поддерживается большинством, если не всей базой данных
двигатели ".
Возможно, мне придется переосмыслить это, поскольку это представляется невозможным с использованием чистой Active Record.
SELECT system.system_id,
system.uuid,
system.hostname,
system.man_description,
system.man_ip_address,
system.os_short_name,
system.os_full_name,
system.man_type,
system.man_icon,
GROUP_CONCAT(DISTINCT '<a href="', oa_group.group_id, '">', oa_group.group_description, '</a>' ORDER BY group_description SEPARATOR ', ') as tag
FROM system,
oa_group,
oa_group_sys
WHERE system.system_id IN (
SELECT system.system_id
FROM system,
oa_group_sys,
oa_group,
oa_group_user
WHERE system.man_status = 'production' AND
system.system_id = oa_group_sys.system_id AND
oa_group_sys.group_id = oa_group.group_id AND
oa_group.group_id = oa_group_user.group_id AND
oa_group_user.user_id = '1' ) AND
system.system_id = oa_group_sys.system_id AND
oa_group_sys.group_id = oa_group.group_id
GROUP BY system.system_id