Creo que es una pregunta estúpida, pero ¿es posible recuperar los nombres de las tablas para cada columna en una consulta SQL? Ejemplo si mi consulta es:
Select e.empno,e.sal,d.deptno FROM emp e JOIN dept d ON e.deptno = d.deptno WHERE e.job = 'Analyst'me gustaria recuperar algo asi
+-------+---------+ | Column| Table | +-------+---------+ | empno| emp | | sal | emp | | deptno| dept | +-------+---------+yo uso postgresql
gracias por la ayuda
Cuando un resultado se devuelve al cliente, se presenta sin visualización ni formato. Supongo que esta pregunta proviene del contexto de PSQL, en cuyo caso no se refiere a obtener los nombres de las columnas de la tabla, sino al formato de visualización del resultado de la consulta. PSQL llama a esta pantalla expandida . Puede habilitarlo con \x después de iniciar psql, o puede iniciar psql con el indicador --expanded .
\x Expanded display is on. test=# SELECT * FROM ( VALUES (1,2,3),(4,5,6) ) AS t(foo,bar,baz); -[ RECORD 1 ] foo | 1 bar | 2 baz | 3 -[ RECORD 2 ] foo | 4 bar | 5 baz | 6Si se refiere a saber realmente de dónde se obtienen las columnas en el formato de visualización, no puede hacerlo. SQL solo mantiene un conjunto de resultados. No sabe dónde está la tabla que originó los datos.
Y, eso no tendría mucho sentido de todos modos, ¿qué mostraría esto...
SELECT * FROM ( SELECT a FROM foo ) AS t; ¿Mostraría la tabla como t o a ?
¿Qué hay de esto...
SELECT a+1 AS b, 'b' AS a FROM ( SELECT a FROM foo ) AS t;Puedes ver que se está volviendo tonto muy rápido.
¿Los alias cumplirán con sus requisitos?
Select e.empno "emp empno" ,e.sal "emp sal" ,d.deptno "dept deptno" FROM emp e JOIN dept d ON e.deptno = d.deptno WHERE e.job = 'Analyst'