Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Mejorar Consulta SQL

Estas en el tema de Mejorar Consulta SQL en el foro de Bases de Datos General en Foros del Web. Que tal, Tengo una BD con Países, provincias y ciudades con esta cosulta, lo que ocurre es que me muestra solo me muestra los registros ...
  #1 (permalink)  
Antiguo 10/10/2005, 07:42
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Mejorar Consulta SQL

Que tal,
Tengo una BD con Países, provincias y ciudades con esta cosulta, lo que ocurre es que me muestra solo me muestra los registros que tienen al menos una ciudad, en un estado, y yo quisiera que me mostrara todo, es decir, todos los paises, todos los estados y todas las ciudades, esta SQL es utilizada en un triple combo box, Pais/Estado/Ciudad.

Código PHP:
SELECT *
FROM countriesstatescities
WHERE cities
.state_id=states.state_id AND states.country_id=countries.country_id 


Gracias de Antemano.
  #2 (permalink)  
Antiguo 10/10/2005, 08:19
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
lee un poco sobre los LEFT JOIN

SELECT campo1, campo2, campo3
FROM primera_tabla
INNER JOIN segunda_tabal
ON primera_tabla.keyfield = segunda_tabla.foreign_keyfield
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #3 (permalink)  
Antiguo 10/10/2005, 12:48
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Ok, pero...

Ok hasta ahí no he encontrado un ejemplo de 3, como le pongo las ciudades ???

Código PHP:
SELECT countries.namestates.state
FROM countries
INNER JOIN states
ON countries
.country_id=states.country_id 
  #4 (permalink)  
Antiguo 10/10/2005, 14:34
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Complementando un poco el query de linterns:

SELECT campo1, campo2, campo3
FROM primera_tabla paises
LEFT OUTER JOIN segunda_tabla estados
ON paises.id_pais = estados.id_pais
LEFT OUTER JOIN tercera_tabla ciudades
ON estados.id_edo = ciudades.id_edo
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 10/10/2005, 17:14
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Aplicandolo así tiene correspondencia Paises/Estados, pero no Estados Ciudades...

Código PHP:
SELECT countries.namestates.statecities.city
FROM countries LEFT OUTER JOIN states 
ON countries
.country_id=states.country_id  LEFT OUTER JOIN cities ON states.state_id=cities.id 


Gracias por responder
  #6 (permalink)  
Antiguo 10/10/2005, 23:12
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Te has equivocado en el code no es cities.id sino cities.state_id

Código:
SELECT countries.name, states.state, cities.city
FROM countries LEFT OUTER JOIN states
ON countries.country_id=states.country_id  LEFT OUTER JOIN cities ON states.state_id=cities.state_id
  #7 (permalink)  
Antiguo 11/10/2005, 07:26
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Oye Gracias Funciona Perfecto...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:54.