MySQL - es posible realizar esta consulta?

 
Vista:

es posible realizar esta consulta?

Publicado por manos (7 intervenciones) el 02/05/2005 18:30:43
hola señores,
tengo una inquietud con respecto a lo que puede hacer mysql.
es posible esto select id from table where id in (1,2,3,4,5)
sencillo...
el asunto es cuando tengo dos claves...

select id1,id2 from table where id1,id2 in (?)
es posible esta consulta?...
cual seria la sintaxis?
...
diculpen la molestia , pero estoy investigando...
y preguntando se llega a muchas partes...
saludos ..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:es posible realizar esta consulta?

Publicado por Mijares (6 intervenciones) el 04/05/2005 17:21:47
Noooo...
No puedes igualar 2 campo a 1 solo resultado, pero si los puedes igualar a 2, mira:

select id1. id2 from table
where (id1, id2) in (select (id2.1, id2.2) from tabla2)

de esta forma haces q los 2 campos sean tratados como 1 por eso es importante los paréntesis.

Saludos, espero que te funcione.

PD: Solo funciona con MySql 4.1 o superiores porque a partir de ésta versión se soporta subconsultas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

pregunto de otra forma... consulta compleja

Publicado por manos (7 intervenciones) el 05/05/2005 16:24:01
hola...
parece que no es clara mi pregunta,
resulta que la clave primaria de mis registros esta compuesta por dos numeros...
llamemos a estos numeros a y b
estos dos numeros los puedo generar con una formula y con el resultado
otros mas segun un criterio que tengo...
aplicando la formula en iteraciones obtengo un conjunto de pares de numeros que conforman la clave...
por ejemplo (1,2) - (5-7) - (10-20) ...
donde el primer numero seria a y el segundo b

ahora la pregunta es la siguiente :
es posible select REGISTRO from tabla where (a,b) in ({1,2},{5,7},{10,20}) ...?

comento que en este momento
obtengo los resultados de la siguiente forma ...que funciona
select REGISTRO from TABLA where (a=1 and b=2) or (a=5 and b=7) or(a=10 and b=20)...
pero si aumento los numeros la consulta se vuelve muy larga y se incrementan los tiempos de evaluacion...
alguien tendria una consulta mas eficiente q



Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pregunto de otra forma... consulta compleja

Publicado por Mijares (6 intervenciones) el 05/05/2005 17:45:06
Buff, que chungo lo tuyo tronco,
te propongo que realices una consulta dinámica desde algun otro sitio, me explico: si estas realizando el programa bajo Visual Basic, hagas aqui el dinamismo de la función y luego lo ejecutes ej:
for i=1 to 10 do
sSql = "or (1 =" & i & " and b = " & i + el intervalo que selecciones & ")"
next

No se, espero que te sirva como idea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

respuesta final...encontre algo que opinan...

Publicado por manos (7 intervenciones) el 05/05/2005 17:54:59
depues de buscar muchas soluciones encontre esta que opinan?
SELECT a,b FROM tabla
WHERE (a,b) IN (( 3, 4 ) , ( 2, 3 ) , ( 1, 2 ) , ( 1, 1 ))

me es funcional...
en cuestiones de rendimiento pues no se..
voy a analizar eso...
saludes...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar