Hallo
ich habe folgende Abfrage
SELECT t1.id, t1.name, @col_name := CONCAT('col_', t1.id),
(SELECT @col_name FROM tb2 AS t2
WHERE t2.id = t1.id) AS 'value'
FROM tb1 AS t1
im Subselect wird die Variable @col_name als normaler String behandelt und nicht als Spaltenname, so dass als value immer was wie col_1, col_2 usw. rauskommt. Wie kann ich dem Subselect beibringen, dass @col_name eine Spaltenbezeichnung ist???
Einfach: so gar nicht.
Überlege bitte: Für jeden Wert von t1.id hast Du einen anderen Spaltennamen.
Du möchtest somit im Subselect ein UNION über entsprechend viele Abfragen machen. Inwieweit Du in einer Stored Routine (Function/Procedure) Dir (über einen Cursor) dynamisch dieses Statement zusammenbauen kannst, das kann ich für MySQL nicht beurteilen. Stored Procedures in MySQL sind aufgrund der däml^w eigenartigen MySQL-SQL-Syntax sperrig. In T-SQL ginge das.
Freundliche Grüße
Vinzenz