Comunidad de diseño web y desarrollo en internet online

Cual es la consulta SQL correcta?

Citar            
MensajeEscrito el 28 Oct 2005 11:45 am
Hola de nuevo:
Quiero conseguir unos valores pero no doy con la consulta correcta...
Lo que tengo es:
- 3 tablas: noticia,editorial y articulo.
- Cada una de ellas tiene un campo llamado 'Anio'.
- Quiero obtener un listado de años 2005,2006, etc. pero quiero q el listado sea de los años donde hay registros en alguna de estas tres tablas. Me explico:

Quiero un select distinct (que no se repitan años claro) de los años pero cunsultando las 3 tablas al mismo tiempo, es decir, si una de las tres por ejemplo tiene un registro en 2007 pues ya es motivo para que salga en la lista el 2007.

La consulta que estoy intentando es asi, pero no es al correcta porque no me da lo que quiero:

Código :

SELECT DISTINCT noticia.Anio,editorial.Anio,articulo.Anio FROM noticia,editorial,articulo GROUP BY noticia.Anio,editorial.Anio,articulo.Anio DESC;


Como lo consigo??ç
Gracias

Por frenadoll

922 de clabLevel

6 tutoriales

Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 28 Oct 2005 12:37 pm
He estado un buen rato en google y creo que se hace con el UNION de varios select, es posible?

Por frenadoll

922 de clabLevel

6 tutoriales

Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 28 Oct 2005 01:19 pm
Te podría dar la respuesta, pero eso ocasionaría que no invesitigues del tema.

Checa acerca de INNER JOIN, LEFT JOIN y demás uniones. Si tienes alguna duda, por aqui estamos.

Saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 28 Oct 2005 03:43 pm
Ok, ya resolvi esto. Pero ahora tengo que seleccionarotra consulta muy muy parecida, a ver si me puedes decir como es. He leido mas y tb sobre el Left Join etc. pero no consigo mas que esto:

Código :

Unknown column 'undefined' in 'where clause'


La consulta es:

Código :

$result = mysql_query("SELECT MAX(id_mes) AS mes1 FROM noticia WHERE Anio=2009 UNION SELECT MAX(id_mes) AS mes2,Anio FROM editorial WHERE Anio=2009 UNION SELECT MAX(id_mes) AS mes3,Anio FROM articulo WHERE Anio=2009");


Lo de 'WHERE Anio=2009' puse 2009 para probar pero en realidad será una variable que le paso a la funcion, en fin cuando funcione quitare el 2009. Bueno solo aclarar esto.

Un saludote ^^

Por frenadoll

922 de clabLevel

6 tutoriales

Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 28 Oct 2005 04:06 pm
Ante todo te digo, para guardar fechas, existen datatypes(date, datetime) especializados para eso. Pero bueno tal vez, te confunda eso por ahora.

Esos SQL, no están bien formados y estructurados, no existe una coherencia de lo que se quiere seleccionar. Ahora, no termino de entender como tienes tu DB, y como se relaciona, si dibujas y detallas el diagrama de tu DB, y lo que quieres seleccionar, me será mas fácil ayudarte, de lo contrario no puedo adivinar.

:wink:

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 28 Oct 2005 04:25 pm
Bueno, acabo de averiguar que lo que va a fallar es otra cosa que no tiene nada que ver, asi que no merece la pena que me esfuerce mas por este camino...
Veras... hay un enlace que llama a un javascript. El javascript tiene un parametro que es el año. Yo queria hacer una consulta dentro de ese script que segun el año devolviera un mes concreto... Pero veo que es imposible asignar una variable de php a java. Fui tonto el error es mio :crap:
De todas formas gracias por todo :D

Por frenadoll

922 de clabLevel

6 tutoriales

Genero:Masculino  

Barcelona

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.