Imaginez que j'ai table1
qui a une colonne nommée 'nom_table'. J'utilise table1
.table_name pour stocker le nom d'une autre table dans la base de données. Les tables référencables auraient toutes un champ 'target_id.SQL: Comment pouvons-nous faire une table1 joindre table2 sur une table donnée dans un champ dans la table1?
Est-il possible d'utiliser table_name dans une instruction JOIN?
Par exemple:
SELECT t1.*, t2.* FROM table1 AS t1
JOIN table1.table_name AS t2 ON t1.table1_id = t2.target_id
La solution évidente est d'utiliser pour obtenir le nom de la table d'abord le script (C++ dans mon cas), et de construire une requête SQL de celui-ci. La question est: pouvons-nous contourner le script et le faire directement en SQL (MySQL)?
Edit: What is dynamic SQL?
C'est une situation où SQL dynamique est la voie à suivre. – Gabe
Merci. Je n'ai jamais entendu parler de 'SQL dynamique'. Laissez-moi trouver où j'ai placé mon google et je vais jeter un oeil ... – augustin
@Gabe: Notez que je travaille avec mysql. Est-ce une extension spécifique au fournisseur? – augustin