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

Ayuda con una consulta relacionando tabla con inner join

Estas en el tema de Ayuda con una consulta relacionando tabla con inner join en el foro de Mysql en Foros del Web. Tengo dos tablas una llamada PDivisiones y la otra Divisiones, ambas comprende un campo tipo: int. Llamado id_division. La columna id_division de la tabla PDivisiones ...
  #1 (permalink)  
Antiguo 14/02/2006, 07:19
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
Ayuda con una consulta relacionando tabla con inner join

Tengo dos tablas una llamada PDivisiones y la otra Divisiones, ambas comprende un campo tipo: int. Llamado id_division.

La columna id_division de la tabla PDivisiones comprende 3 registros. en cada uno contiene 1, 2 , 3.

El campo id_division de la tabla Divisiones comprende 50 registros. en cada una contiene 1, 2 ......50.

El query debe de extraer de la tabla Divisiones los campos id_division que no se encuentren en la tabla PDivisiones. Es decir deberia de mostrar del 4 al 50.

La consulta que plateo, perono funciona es la siguiente:

select Divisiones.id_division from Divisiones inner join PDivisiones on Divisiones.id_division != PDivisiones.id_division

Agradeceria mucho su ayuda
  #2 (permalink)  
Antiguo 14/02/2006, 07:45
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
porque no intentas hacer la siguiente consulta:
Código PHP:
//
SELECT
  Divisiones
.id_division 
FROM 
  Divisiones
WHERE
  Divisiones
.id_division NOT IN (Divisiones INNER JOIN PDivisiones ON Divisiones.id_division PDivisiones.id_division )

// 
espero te sirva, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #3 (permalink)  
Antiguo 14/02/2006, 08:03
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
Gracias Deadlykyo, pero el manejador de base de datos que estoy empleando me arroja el siguiente error:

You have an error in your SQL syntax. Check the manual corresponde to your mySQL Server Versión for the right Syntax to use near 'Inner Join PDivisiones ON Divisiones ON Divisiones.id_divisiones=PDivisiones.

Soy nueva en base de datos Mysql. Agradeceria tu ayuda
  #4 (permalink)  
Antiguo 14/02/2006, 08:15
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Buena posible razon del error es por la version de tu mysql, ya que subconsultas solo funcionan a partir del 4.1.x en adelante, puedes ver la version haciendo un:
Código PHP:
//
mysql>SELECT VERSION(); 
ahora si no tal vez te funcione esto:

Código PHP:
//
SELECT
  Divisiones
.id_division 
FROM 
  Divisiones LEFT JOIN PDivisiones ON Divisiones
.id_division PDivisiones.id_division
WHERE
  Divisiones
.id_division IS NULL 
cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #5 (permalink)  
Antiguo 14/02/2006, 08:49
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
deadlykyo

estoy utilizando mysql front, con esa herramienta estoy manejando la base de datos, solo acepta lenguaje sql, no procede php. Necesito hacer el query desde esa herramienta. Estoy casi segura que el problema es el in. creo que no acepta el esa sintaxis (in)

Los INNER JOIN si los acepta:

Por ejemplo:

1- con esta sintaxis= select Divisiones.id_division from Divisiones inner join PDivisiones on Divisiones.id_division = PDivisiones.id_division

Me selecciona los resgistros 1,2,3 ya que en ambas tablas se repiten dichos registros. De esta manera funciona ya que me trae todos los campos iguales de ambas tablas.

Entonces si a esa mismo select se le cambia el operador a diferente(<>) deberia hacer lo contrario. Y no lo hace.
  #6 (permalink)  
Antiguo 14/02/2006, 08:57
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
Con el ultimo ejemplo que me indicaste:

SELECT Divisiones.id_division FROM Divisiones LEFT JOIN PDivisiones ON Divisiones.id_division = PDivisiones.id_division WHERE Divisiones.id_division IS NULL

No me da error, pero no me muestra lo esperado. Muestra es un solo registro que contiene null
  #7 (permalink)  
Antiguo 14/02/2006, 09:37
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
bueno que version de mysql tienes, ahora lo que haces al hacer <>, != en tu consulta sigues haciendo un join entre las tablas pero entre los datos que no estan relacionados en otras palabras relacionas cada dato que no este en tu tabla con todos los de la otra tabla, ahora si no jalan subconsultas, la forma mas facil es la de crear una vista y usar la vista para tu consulta, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #8 (permalink)  
Antiguo 14/02/2006, 13:11
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
Exclamación

la versión que tengo de mysql efectivamente no admite in. Si utilizo join de todas manera no me funciona. Cual seria otra opción???????????????????????????????????????????? ????????????????????????????????????????
  #9 (permalink)  
Antiguo 14/02/2006, 13:53
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
pude resolver el problema realmente muchas gracias
  #10 (permalink)  
Antiguo 14/02/2006, 13:54
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Mira creo que me equivoque en la anterior consulta, por que no intentas hacer esto:
Código PHP:
//
SELECT
  Divisiones
.id_division 
FROM 
  Divisiones LEFT JOIN PDivisiones ON Divisiones
.id_division PDivisiones.id_division
WHERE
  PDivisiones
.id_division IS NULL 
me equivoque en el where tal vez con esto obtengas lo que quieres, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #11 (permalink)  
Antiguo 14/02/2006, 14:07
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
Sonrisa

exactamente de esa forma logre que la consulta me seleccionara lo esperado. Gracias
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 22:38.