Ich habe ein Problem in einer Join-Klausel bekommen ... das ist mein Code:Codeigniter entfernen "(" in Join-Klausel
$this->db->select("users.id, users.first_name, users.second_name")->from("users");
$this->db->join("users_groups", "users_groups.user_id=users.id AND (users_groups.group_id=".$this->config->item("admin_group")." OR users_groups.group_id=".$this->config->item("admin_location_group")." OR users_groups.group_id=".$this->config->item("employee_group").")", "INNER");
return $this->db->get()->result();
Und es produziert, was das ist:
SELECT `users`.`id`, `users`.`first_name`, `users`.`second_name` FROM `users` INNER JOIN `users_groups` ON `users_groups`.`user_id`=`users`.`id` AND `users_groups`.`group_id`=1 OR `users_groups`.`group_id`=8 OR `users_groups`.`group_id`=4)
A Klammer vor users_groups
. group_id
= 1 entfernt ... keine Ahnung, warum ??
Danke.
Ich glaube, dass diese Abfrage ein viertes optionales Argument hat, dass, wenn Sie auf true festlegen, die Daten nicht entkommt, dies den Parser möglicherweise daran hindert, die Klammern zu entfernen (und die Entwindung zu stoppen). Aber das ist sicherlich merkwürdig. Ich kann nichts falsch mit der Abfrage selbst sehen. – PaulD
Bedeutet Ihre Abfrage 'WHERE users_groups.group_id = 1 ODER users_groups.group_id = 8 OR users_groups.group_id = 4' nach' AND'? – Benyi
Dank @PaulD ... der vierte Parameter ist die Lösung (wenn Sie als Lösung setzen, werde ich als die gute markieren). –