Próbuje i nie wiem z której strony się do tego zabrać.

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:

  1. $query = "SELECT {$this->select} FROM {$this->table} {$pockets} {$where} {$order}";
  2.  
  3. if (isset($getOne) && $getOne === true) {
  4. return $this->db->query($query)->row();
  5. }
  6. 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ć...