SQL - consulta para la union

 
Vista:

consulta para la union

Publicado por matiasg (1 intervención) el 12/02/2008 21:29:50
hola compañeros
quisiera saber como se une estas tres consulta para tenerlo todo de una noticia
estoy estudiando php y mysql si me podria echarme una mano oara seguir aprendiendo
gracias y os dejo las consulta

De cada noticia queremos obtener:
- Título de la noticia.
-
- Descripción de la noticia.
-
- Enlace a la página web de la noticia.
-
- Palabras clave.
-
- Nombre del usuario que la ha publicado.
-
- Número de comentarios.
-
- Número de votos realizados.
-
- Fecha de publicación.
-----------------------------------------------------------------------------------------------------------------------

SELECT noticia.id_noticia, noticia.titulo, descripcion, enlace, palabra_clave, nombre_o_apodo AS usuario, noticia.fecha
FROM noticia, usuario, comentario
WHERE
noticia.id_usuario = usuario.id_usuario

Union
SELECT COUNT (id_comentario) AS comentarios
FROM comentario, noticia, usuario
WHERE
comentario.id_noticia = noticia.id_noticia AND
comentario.id_usuario = usuario.id_usuario AND
comentario.id_noticia = 38

Union
SELECT COUNT (id_voto) AS voto
FROM voto, noticia, usuario
WHERE
voto .id_noticia = noticia.id_noticia AND
voto.id_usuario = usuario.id_usuario AND
voto.id_noticia = 38

de cada consulta me funciona, pero el anunciado me dice todo de una vez
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consulta para la union

Publicado por sabina (2 intervenciones) el 19/02/2008 21:14:46
Hola Chamaco!!

Para hacer una unioc es necesario que los 3 select contengan el mismo número de columnas y el mismo tipo, pero como veo, lo que necesitas es hacer lo siguiente...

SELECT noticia.id_noticia, noticia.titulo, descripcion, enlace, palabra_clave, nombre_o_apodo AS usuario, noticia.fecha , count(id_comentario) as comentario, COUNT (id_voto) AS voto

FROM noticia, usuario, comentario , voto
WHERE
noticia.id_usuario = usuario.id_usuario and
comentario.id_noticia = noticia.id_noticia AND
comentario.id_usuario = usuario.id_usuario AND
voto .id_noticia = noticia.id_noticia AND
voto.id_usuario = usuario.id_usuario

GROUP BY noticia.id_noticia, noticia.titulo, descripcion, enlace, palabra_clave, nombre_o_apodo AS usuario, noticia.fecha
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar