Codeigniter (v1.7.2) Active Record Class を使用して MSSQL データベースにクエリを実行する (外部 DB、テーブルまたはフィールド名は制御しません)
次のコード:
$this->db->select('[Key Field], MemberInfo.OtherField');
$this->db->limit(10);
$this->db->from('primaryTable');
$this->db->join('MemberInfo', '[Member Number] = Member_Number', 'left');
$this->db->where('[Member Number] = 573');
$this->db->where('[Incident Date] BETWEEN '. $DateStart . ' AND ' . $DateEnd);
次のクエリを生成します (構文エラーがあります)
SELECT TOP 10 [Key Field], MemberInfo.OtherField
FROM primaryTable
LEFT JOIN MemberInfo ON Member Number] = Member_Number
WHERE [Member Number] = '573'
AND [Incident Date] BETWEEN 2012-01-01 AND 2012-07-19
フィールド名の開始 '[' が欠落している JOIN 句に注意してください。
二重引用符を使用してみましたが、同じ結果が得られました。
これは 1.7.2 の既知のバグですか?
UPDATE の問題は 2.1.2 にも存在します
以下の受け入れられた回答も2.1.2の修正です。JOIN関数の正規表現チェックを変更して、開始を探します[