私はCodeIgniterを使用しています。私のデータベースはMySQL5です。以下のSQLステートメントは正常に機能しますが、MSSQL、PGなどと実際には互換性がないと考えています。CIのActiveRecordクラスを使用してステートメントを実装できるかどうか疑問に思っているので、データベースを完全に横断することができますか?
「GROUP_CONCAT」は私が倒れるところだと思います...
編集-CodeIgniterボードにあります
「ただし、CONCATはデータベース固有であることに注意してください。すべてではないにしても、ほとんどのデータベースエンジンでサポートされていると確信していますが、実際にはアクティブレコードライブラリの一部ではありません。」
純粋なActiveRecordを使用することは不可能であるように思われるため、これを再考する必要があるかもしれません。
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