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

[SOLUCIONADO] unir consultas

Estas en el tema de unir consultas en el foro de Mysql en Foros del Web. hola tengo ahy una duda de como unir dos consultas solo se unirlas con UNION, pero me imagino que abra una forma mas eficaz de ...
  #1 (permalink)  
Antiguo 01/02/2014, 07:20
 
Fecha de Ingreso: abril-2012
Mensajes: 31
Antigüedad: 12 años
Puntos: 0
unir consultas

hola tengo ahy una duda de como unir dos consultas
solo se unirlas con UNION, pero me imagino que abra una forma mas eficaz de unirlas ya que los campos son todos iguales

Alguien me puede hechar una man?


update usuarios set nombre = 'pepe' where id='1'
update usuarios set nombre = 'juan' where id='2'


saludos de antemano
  #2 (permalink)  
Antiguo 01/02/2014, 12:13
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: unir consultas

1.-UNION es la única forma de UNIR consultas.

Código MySQL:
Ver original
  1. SELECT campo1,campo2 FROM tabla1
  2. SELECT campo1,campo2 FROM tabla2
Solo se puede hacer con unión....

2.-Hay formas ineficientes de usar UNION que pueden asemejarse a unir dos consultas, pero simplemente es una forma no optimizada de redactar una consulta se puede optimizar....

Ejemplo NO optimizado

Código pre:
Ver original
  1. SELECT campo1,campo2 FROM tabla1 WHERE campo1="A"
  2. UNION
  3. SELECT campo1,campo2 FROM tabla1 WHERE campo1="B"
(lo he codificado como "pre" a proposito)


Ejemplos mejores de obtener lo mismo

Código MySQL:
Ver original
  1. SELECT campo1,campo2 FROM tabla1 WHERE campo1="A" OR campo1="B";
Código MySQL:
Ver original
  1. SELECT campo1,campo2 FROM tabla1 WHERE campo1 IN ("A","B");

En todo caso UNION solo se usa con SELECT!!!

Lo que sugieres preguntar de si se puede hacer un union con

Código MySQL:
Ver original
  1. update usuarios set nombre = 'pepe' where id='1'
  2. update usuarios set nombre = 'juan' where id='2'

la respuesta es NO...

Pero.....

Código MySQL:
Ver original
  1. update usuarios set nombre =(CASE id
  2.     WHEN 1 THEN 'pepe'
  3.     WHEN 2 THEN 'juan'
  4. END);

igual te sirve.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 01/02/2014 a las 12:18
  #3 (permalink)  
Antiguo 01/02/2014, 17:03
 
Fecha de Ingreso: abril-2012
Mensajes: 31
Antigüedad: 12 años
Puntos: 0
Respuesta: unir consultas

que bueno quimfv buena explicacion, me as resuelto el problema

Gracias por la ayuda

Etiquetas: campo, usuarios
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 19:10.