W CRMie na którym pracuje prawie wszystkie zapytania idą przez jedną metodę, która odpowiednio obrabia kod zapytania.
W kodzie programista praktycznie nie korzysta z SQLa (zdarzają się wyjątki).
Sformatowane zapytanie jest na koniec wykonywane w taki sposób:
$query = "SELECT {$this->select} FROM {$this->table} {$pockets} {$where} {$order}"; return $this->db->query($query)->row(); } return $this->db->query($query)->res();
w $this->select mogą znajdować się podzapytania.
w $pockets znajdują się joiny i ich warunki
w $where znajdują się warunki, sporadycznie mogą się tam znaleźć podzapytania.
Większość systemu korzysta z tego pośrednika co jest tu chyba plusem, zmian można dokonać w jednym miejscu. Tylko właśnie nie wiem jak najlepiej się do tego zabrać...