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

MySQL usar AND y OR para misma tabla

Estas en el tema de MySQL usar AND y OR para misma tabla en el foro de Mysql en Foros del Web. Hola tengo que hacer una consulta que me arroje los valores de una misma tabla pero las clausulas con que uno de los valores siempre ...
  #1 (permalink)  
Antiguo 21/11/2012, 14:33
Avatar de emilio_viguri  
Fecha de Ingreso: junio-2011
Ubicación: Mexico
Mensajes: 116
Antigüedad: 12 años, 10 meses
Puntos: 3
Busqueda MySQL usar AND y OR para misma tabla

Hola tengo que hacer una consulta que me arroje los valores de una misma tabla pero las clausulas con que uno de los valores siempre sea Z y tenga el valor X o tenga el valor Y

tabla partidas tendira dentro estos valores

contrato idorden Rproveedor
Z X Y
A X N
Z S Y
A X Y
Z N N
A N Y
Z X S

Código:
 
SELECT * FROM partidas 
WHERE contrato = Z AND
idorden = X OR Rproveedor = Y
la consulta me tendira que arrojar los valores donde contrato es = Z y contenga en idorden X o en rproveedor Y

Z X Y
Z S Y
Z X S
  #2 (permalink)  
Antiguo 21/11/2012, 14:43
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: MySQL usar AND y OR para misma tabla

Lo que te falla es el uso de los operadores, porque no estás usando paréntesis...
Es como cualquier otra operación matemática.

lee el uso de los paréntesis, si quieres, en este link, para que entiendas bien su uso.
__________________
¿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 21/11/2012, 14:52
Avatar de emilio_viguri  
Fecha de Ingreso: junio-2011
Ubicación: Mexico
Mensajes: 116
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: MySQL usar AND y OR para misma tabla

Muchas gracias si solo requiero confirmarlo pero si todo esta bien entonces mi consulta quedaria a si

SELECT * FROM partidas WHERE contrato = %s AND (idorden = %s XOR Rproveedor = %s)
  #4 (permalink)  
Antiguo 21/11/2012, 14:58
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: MySQL usar AND y OR para misma tabla

Exacto.
Los paréntesis cuando hay un OR son críticos. es donde la mayoría se confunde cuando la consulta no la escriben en forma estructurada (cosa que te recomiendo):
Código MySQL:
Ver original
  1. FROM partidas
  2.     contrato = %s  
  3.     AND (idorden = %s OR Rproveedor = %s)

Cuidado con el XOR. Es lo que se denomina "OR exclusivo", porque sólo será TRUE si uno sólo de ambos es verdadero, pero no si ambos lo son.
Es un caso especial. No suele ser muy usado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 21/11/2012, 16:11
Avatar de emilio_viguri  
Fecha de Ingreso: junio-2011
Ubicación: Mexico
Mensajes: 116
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: MySQL usar AND y OR para misma tabla

Ok Muchas Gracias me ayudo mucho tu liga

Etiquetas: select, tabla, usar
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 20:57.