Comunidad de diseño web y desarrollo en internet online

Duda con un query SQL que se comporta muy extraño

Citar            
MensajeEscrito el 16 Mar 2006 12:39 am
Tengo este query

Código :

SELECT 
incendios.incendio_id,
incendios.fecha_inicio,
incendios.fecha_termino,
incendios.arbolado_afec,
incendios.renuevo_afec,
incendios.arbusto_afec,
incendios.pastizal_afec,
incendios.municipio_id,

municipios.municipio_id,
municipios.nombre,
municipios.region,

regiones.nombre_reg

FROM `incendios`,`municipios`,`regiones`

WHERE `fecha_inicio` >= '2006-03-01' AND `fecha_termino` <= '2006-03-30'


el problema no es en la consulta sino en el resultado que me manda todos los registros de todas las tablas, mi pregunta es si se puede (y como) poner un filtro para que solo mande los registros unicos, o sea, tengo un id de incendios y los duplica =S
o sea, quiero algo asi como un codigo que me diga "no metas los duplicados de 'X' campo"

;D

o alguna otra forma de obtener el resultado que quiero

saludos :)

Por Azielito

79 de clabLevel



 

Frente al PC

firefox
Citar            
MensajeEscrito el 16 Mar 2006 01:07 am
$senSQL = "SELECT DISTINCT * FROM tablaWHERE condicion"

Creo que es lo que buscas.!

Por Reymond

Claber

1111 de clabLevel

5 tutoriales
1 articulo

Genero:Masculino  

Mobile developer

firefox
Citar            
MensajeEscrito el 16 Mar 2006 04:15 pm
mira, mi query lo que me hace es mandar todos los registros de todas las tablas cuando en realidad solo quiero que me mande los de mas datos de los 7 registros que tengo en la tabla de incendios XD

o sea, lo que quiero hacer es sacar el nombre del municipio y la region con el id de municpio que tengo en mi tabla incendios, y, con el campo "region" de mi tabla municpios quiero sacar el nombre de la tabla regiones, nada mas

y es que si hago esto

Código :

AND incendios.municipio_id=municipios.municipio_id

AND municipios.region=regiones.region_id

solo me mandara los que cumplan esas condiciones

=S

[sub]estas son mis tablas[/sub]

incendios

Código :

   incendio_id     int(5)   auto_increment   
   fecha_inicio    date
   fecha_termino    date
   arbolado_afec    double
   renuevo_afec    double
   arbusto_afec    double
   pastizal_afec    double
   municipio_id    int(3)


municipios

Código :

   municipio_id    int(3)
   nombre    varchar(35)
   region    int(1)


regiones

Código :

   region_id    int(2)   auto_increment
   nombre_reg    varchar(20)
   direccion    text
   telefonos    varchar(25)
   delegado    varchar(45)
   subdelegado_admon    varchar(45)
   subdelegado_protec    varchar(45)
   subdelegado_fomento    varchar(45)
   subdelegado_rest    varchar(45)
   coordinador_inc    varchar(45)



y es que le ponga o no el distinct me hace lo mismo XD gracias :)

Por Azielito

79 de clabLevel



 

Frente al PC

firefox
Citar            
MensajeEscrito el 16 Mar 2006 05:48 pm
Tendrias q usar inner join (seria algo asi como una interseccion de tablas)

Código :

SELECT 
   r.nombre_reg
FROM
   incendios c
INNER JOIN
   municipios m
ON
   c.municipio_id = m.municipio_id
INNER JOIN
   regiones r
ON
   m.region = r.region
WHERE
   c.fecha_inicio >= '2006-03-01' AND c.fecha_termino <= '2006-03-30'


las fechas de inicio y termino no sabia a q tablas pertenecian... asike consdere q pertenecian a la taba incendio por eso le puse la "c" adelante... pero pone la q corresponda


salu2

Por 3w

145 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 16 Mar 2006 06:05 pm
Tal cual lo pone 3w es tu solución. Tal vez solo cambiar el INNER, por LEFT, ya que la unión es en base a la table de incendios, las otras dos se acoplan a esta.

Saludos :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

 

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