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

[SOLUCIONADO] Loco con INNER JOIN

Estas en el tema de Loco con INNER JOIN en el foro de Mysql en Foros del Web. Señores.. estoy bloqueado! Muchas horas programanado y me he quedado tieso con una chorracda que seguro que cuando alguien me responda me tiraré de los ...
  #1 (permalink)  
Antiguo 19/10/2015, 08:42
 
Fecha de Ingreso: julio-2007
Mensajes: 10
Antigüedad: 16 años, 8 meses
Puntos: 1
Loco con INNER JOIN

Señores.. estoy bloqueado!
Muchas horas programanado y me he quedado tieso con una chorracda que seguro que cuando alguien me responda me tiraré de los pelos...

En fin.. ahi va!

Esta consulta debería encontrar un registro que cumple 2 condiciones dobles .. pero solo devuelve el registro cuando la condición es una y no dos:

Esta va:
select distinct (tabla1.ID), tabla1.* from tabla1
INNER JOIN tabla2
on atabla1.ID=tabla2.ID
WHERE ( (tabla2.CAMPO_A='7' AND tabla2.CAMPO_B='1') )

Pero esta no ¿?
select distinct (tabla1.ID), tabla1.* from tabla1
INNER JOIN tabla2
on atabla1.ID=tabla2.ID
WHERE ( (tabla2.CAMPO_A='7' AND tabla2.CAMPO_B='1') and (tabla2.CAMPO_A='9' AND tabla2.CAMPO_B='1') )

Si realizo el primer select (el qeu va) con la búsqueda (tabla2.CAMPO_A='9' AND tabla2.CAMPO_B='1') funciona (cumple la cosulta).. .

Por que no me devuelve los 2 registros en la segunda consulta?

Al que me los solucione le invito a una cerveza virutual!

Saludos!
  #2 (permalink)  
Antiguo 19/10/2015, 09:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Loco con INNER JOIN

Eso es SQL, y es OFF TOPIC en el foro de PHP. Nada tiene que ver lo que escribas en SQL con lo este lenguaje.
Deberías haberlo posteado en el foro de Bases de DAtos...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 19/10/2015, 10:40
 
Fecha de Ingreso: julio-2007
Mensajes: 10
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Loco con INNER JOIN

pues sí.. pensaba que estaba en mysql. Perdón!
como lo borro?
  #4 (permalink)  
Antiguo 21/10/2015, 15:14
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 6 meses
Puntos: 214
Respuesta: Loco con INNER JOIN

<saludo>
Ahm, pues a ver.
Haciendo las consultas por aparte, deben funcionar pues
deben haber registros que en la tabla2 en el CAMPO_A
tengan valores 7 o 9.

Sin embargo, al unir las consultas y buscar un registro
que cumpla ambas condiciones, no se va a dar, pues
el campo solo tendrá uno de los dos valores, no los dos al tiempo,
a menos que el AND involucre a otra tabla, o a otro campo de la misma tabla,
pero si los campos son correctos, entonces el AND que hace de puente
debe ser sustituido por un OR

Código SQL:
Ver original
  1. WHERE ( (tabla2.CAMPO_A='7' AND tabla2.CAMPO_B='1') OR (tabla2.CAMPO_A='9' AND tabla2.CAMPO_B='1') )


¿Para cuando la cerveza?

</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 22/10/2015, 01:36
 
Fecha de Ingreso: julio-2007
Mensajes: 10
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Loco con INNER JOIN

Cita:
Iniciado por mortiprogramador Ver Mensaje
<saludo>
¿Para cuando la cerveza?
</saludo>

Cierto! Eso esra parte del problema.., pero cmo yo quería que aparecieran todos los que cumplían con todas las condiciones faltaba algoa más .. en este caso el GROUP BY y HAVING COUNT

Todo me fue aclarado en[URL="http://www.forosdelweb.com/f86/duda-inner-join-1139902/#post4750266"] aquí [/URL]

Tienes dos cercezas pagadas!! disfrútalas qeues tán fresquitas

Etiquetas: php
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 07:08.