Buenas tardes modeff, espero que ya gnzsoloyo te haya resuelto las dudas con respecto a los alias, pero si continuas con problemas para entender la consulta que puse me lo comentas para tratar de explicarla.
Por lo que comentas en tu último post al parecer sí te funcionó la consulta que propuse, te comento que para mostrar sólo los temas que tienen enlace puedes hacerlo mediante los operadores ANY, EXISTS o IN. te pongo un ejemplo de cómo sería utilizando la sentencia ANY, pero te recomiendo que revises en alguno de los manuales que descargaste más acerca del uso de estas cláusulas.
Código SQL:
Ver originalSELECT 1 AS nivel, T1.id, T1.nombre_tema AS descripcion FROM temas T1
WHERE
--Con esto muestras sólo los temas que tengan algún enlace
T1.id = ANY (SELECT DISTINCT id_tema FROM sitios_web_por_tema W2)
UNION
SELECT 2 AS nivel, W.id_tema AS id, W.enlace_web AS descripcion
FROM sitios_web_por_tema W INNER JOIN temas T2 ON W.id_tema = T2.id
WHERE
idioma = '5'
--Falta agregar la condición para id_concepto
ORDER BY id, nivel, descripcion
Como verás estoy tomando la misma consulta que propuse al inicio, si tuviste que hacer alguna adecuación adicional para que te funcionara pues debes volver a aplicarla.
Y un comentario adicional a lo que mencionaba el compañero gnzsoloyo
Cita: Respecto al ejemplo propuesto por leonardo_josué, lamento advertirte que lo que te traerá será esto:
Código:
nivel|id|descripcion
------------------------
1|1|Tema 1
1|2|Tema 2
1|3|Tema 3
2|1|Enlace 1
2|1|Enlace 2
2|1|Enlace 3
2|2|Enlace 4
2|2|Enlace 5
2|2|Enlace 6
porque en un UNION, el último ORDER BY afecta la totalidad de la tabla devuelta y no una parte de ella, por lo que ordenará las dos primeras columnas de todos los registros primero.
Efectivamente como lo comentas el orden se aplica en la total de la tabla pero creo que no revisaste la secuencia de ordenación que estoy manejando, si observas primero se ordena por el ID y después por el nivel, de tal manera que los campos se presentan tal y como lo puse en el post:
Código:
nivel|id|descripcion
------------------------
1|1|Tema 1
2|1|Enlace 1
2|1|Enlace 2
2|1|Enlace 3
1|2|Tema 2
2|2|Enlace 4
2|2|Enlace 5
2|2|Enlace 6
1|3|Tema 3
Un saludo
Leo.