La seule réponse valable est de créer votre propre cadre pour cela. Je l'ai fait plusieurs fois. Ce que vous voulez ressemble plus ou moins à un générateur de rapports complexe qui génère des rapports à la volée, mais vous souhaitez créer un générateur de requêtes complexe avec des aides visuelles pour le client.
La première chose que je ferais est d'utiliser un modèle qui représente chaque table et propose des mécanismes pour décrire les champs de la table afin que vous puissiez montrer les champs à l'utilisateur. Créez ensuite un mécanisme de liaison dans vos modèles qui dit :si je lie cette table et cette table, quel est le JOIN que je dois utiliser.
Laissez votre utilisateur sélectionner les modèles dans vos colonnes à utiliser, puis utilisez vos modèles pour créer la requête pour vous. En fait, cela fonctionne bien mais prend un certain temps.
Bonne chance