Jediná platná odpověď je vytvořit si pro to svůj vlastní rámec. Už jsem to udělal několikrát. To, co chcete, vypadá víceméně jako generátor komplexních sestav, který generuje zprávy za běhu, ale chcete vytvořit generátor komplexních dotazů s vizuálními pomůckami pro klienta.
První věc, kterou bych udělal, je použít model, který představuje každou tabulku a nabízí mechanismy pro popis polí tabulky, abyste mohli pole zobrazit uživateli. Poté ve svých modelech vytvořte spojovací mechanismus, který říká:pokud propojím tuto tabulku a tuto tabulku, jaký je JOIN, který bych měl použít.
Nechte svého uživatele vybrat modely do vašich sloupců, které chcete použít, a poté pomocí vašich modelů vytvořit dotaz za vás. Ve skutečnosti to funguje dobře, ale trvá to dost času.
Hodně štěstí