Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 14-feb-2006, 06:19   #1 (permalink)
ostayde no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Triste 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
ostayde está desconectado   Responder Citando
Antiguo 14-feb-2006, 06:45   #2 (permalink)
deadlykyo ha deshabilitado el karma
 
Avatar de deadlykyo
 
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 743
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"
deadlykyo está desconectado   Responder Citando
Antiguo 14-feb-2006, 07:03   #3 (permalink)
ostayde no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
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
ostayde está desconectado   Responder Citando
Antiguo 14-feb-2006, 07:15   #4 (permalink)
deadlykyo ha deshabilitado el karma
 
Avatar de deadlykyo
 
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 743
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"
deadlykyo está desconectado   Responder Citando
Antiguo 14-feb-2006, 07:49   #5 (permalink)
ostayde no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
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.
ostayde está desconectado   Responder Citando
Antiguo 14-feb-2006, 07:57   #6 (permalink)
ostayde no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
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
ostayde está desconectado   Responder Citando
Antiguo 14-feb-2006, 08:37   #7 (permalink)
deadlykyo ha deshabilitado el karma
 
Avatar de deadlykyo
 
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 743
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"
deadlykyo está desconectado   Responder Citando
Antiguo 14-feb-2006, 12:11   #8 (permalink)
ostayde no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
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???????????????????????????????????????????? ????????????????????????????????????????
ostayde está desconectado   Responder Citando
Antiguo 14-feb-2006, 12:53   #9 (permalink)
ostayde no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
pude resolver el problema realmente muchas gracias
ostayde está desconectado   Responder Citando
Antiguo 14-feb-2006, 12:54   #10 (permalink)
deadlykyo ha deshabilitado el karma
 
Avatar de deadlykyo
 
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 743
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"
deadlykyo está desconectado   Responder Citando
Antiguo 14-feb-2006, 13:07   #11 (permalink)
ostayde no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Sonrisa

exactamente de esa forma logre que la consulta me seleccionara lo esperado. Gracias
ostayde está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 04:55.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93