J'ai une table Je sais que la requête ci-dessus ne fonctionnera pas mais comment je peux y parvenir? Dois-je écrire une procédure stockée ou quelque chose comme ça et boucle sur chaque valeur de la deuxième requête et exécuter la première requête? p>
merci p>
Maintenant, je veux écrire une requête dans le format suivant:
Sélectionnez * à partir de (Sélectionnez Tbl_Names à partir de TBL1) CODE> P>
3 Réponses :
Vous pouvez utiliser des instructions préparées acclamations. P> p>
Il suffit d'ajouter un pseudonim à la sous-requête: bonne chance) p> p>
Cela ne semble pas travailler à Mariadb, avez-vous vérifié que cela fonctionne dans MySQL? Cela ne semble pas que ce soit.
Vous devrez utiliser un SQL dynamique. Construisez une chaîne SQL avec la requête que vous souhaitez exécuter, puis appelez Exemple complet: p> exécuté (@sql) code> declare cur cursor for
select tbl_names from tbl1
declare @sql varchar(100), @tbl varchar(100)
open cur
fetch cur into @tbl
while @@FETCH_STATUS = 0 begin
set @sql = 'select * from ' + @tbl
exec(@sql)
fetch cur into @tbl
end
close cur
deallocate cur
La procédure stockée peut vous aider
Merci Arun pour une réponse rapide. Mais désolé de dire que je ne connaissais pas du tout des procédures stockées, alors pouvez-vous m'aider avec ceci :)