Hola davidj:
No mencionas en tu post si las tablas tienen algún tipo de relación o son independientes... Si las tablas estuvieran relacionadas y esta relación está referida por los parámetros que envías, podrías utilizar JOIN's...
ahora bien, si tus tablas son independientes y no guardan relación, lo único que se me ocurre (si entendí correctamente qué es lo que quieres hacer) sería algo como esto:
Código MySQL:
Ver original+---------+----------+----------+
| id_algo | campo1 | campo2 |
+---------+----------+----------+
| 1 | algo 1.1 | algo 1.2 |
| 2 | algo 2.1 | algo 2.2 |
| 3 | algo 3.1 | algo 3.2 |
+---------+----------+----------+
+---------+----------+----------+
| id_nose | campo1 | campo2 |
+---------+----------+----------+
| 1 | nose 1.1 | nose 1.2 |
| 2 | nose 2.1 | nose 2.2 |
| 3 | nose 3.1 | nose 3.2 |
+---------+----------+----------+
+-----------+------------+------------+
| id_varios | campo1 | campo2 |
+-----------+------------+------------+
| 1 | varios 1.1 | varios 1.2 |
| 2 | varios 2.1 | varios 2.2 |
| 3 | varios 3.1 | varios 3.2 |
+-----------+------------+------------+
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
mysql
> SET @id_varios
= 3;Query OK, 0 rows affected (0.00 sec)
-> (SELECT campo1
FROM varios
WHERE id_varios
= @id_varios
) columna1_varios
;
+---------------+---------------+-----------------+
| columna1_algo | columna1_nose | columna1_varios |
+---------------+---------------+-----------------+
| algo 1.1 | nose 2.1 | varios 3.1 |
+---------------+---------------+-----------------+
+------------+
| campo1 |
+------------+
| algo 1.1 |
| nose 2.1 |
| varios 3.1 |
+------------+
La Opción 1 te regresaría un sólo registro con tres columnas, donde cada columna representa el valor del campo 1 de cada tabla.
La Opción 2 utiliza UNION para regresar tres registros con una sola columna, es básicamente lo mismo que estás haciendo, pero al hacer UNION sólo haces una llamada a la BD. Sin embargo, no estoy seguro que cualquiera de estas opciones sea más eficiente que hacerlo por separado...
Saludos
Leo.