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

Duda con consulta SQL extensa

Estas en el tema de Duda con consulta SQL extensa en el foro de Mysql en Foros del Web. Saludos Veran poseo dos bases de datos, una con los usuarios del foro y otra con los usuarios de mi web. Cuando te registras en ...
  #1 (permalink)  
Antiguo 15/05/2012, 04:22
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Duda con consulta SQL extensa

Saludos

Veran poseo dos bases de datos, una con los usuarios del foro y otra con los usuarios de mi web.

Cuando te registras en la web, automaticamente lo haces en el foro, pero en un traspaso de archivos a produccion hubo 14 usuarios que solo se registraron en la web.

Quisiera poder identificar dichos usuarios con una sentencia sql, alguien sabria ponerme un ejemplo?
  #2 (permalink)  
Antiguo 15/05/2012, 05:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Duda con consulta SQL extensa

Cita:
...poseo dos bases de datos...
Vamos a suponer que quieres decir "dos tablas"

Vamos a suponer que los usuarios se registran en las dos tablas (o bases) con el mismo idUsuario

Código MySQL:
Ver original
  1. SELECT w.idUsuario,w.usuario
  2. FROM usuariosWeb w LEFT JOIN usuariosForo f
  3. ON w.idUsuario=f.idUsuario
  4. WHERE f.idUsuario IS NULL;

Si el primer supuesto no se da tambien tiene solución

Código MySQL:
Ver original
  1. SELECT w.idUsuario,w.usuario
  2. FROM baseWeb.usuarios w LEFT JOIN baseForo.usuarios f
  3. ON w.idUsuario=f.idUsuario
  4. WHERE f.idUsuario IS NULL;

Si el segundo supuesto no se da tendrias que explicarnos como relacionas los usuarios de una y otra tabla (o base).


Si?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 15/05/2012 a las 05:38
  #3 (permalink)  
Antiguo 15/05/2012, 09:29
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda con consulta SQL extensa

Tengo aprocimadamente 30.000 registros en cada tabla

Cuanto suele tardar? Lo digo porque el sql del phpmyadmin no me saca nada, se queda cargando y desaparece. Tiene pinta de que esta tardando mucho
  #4 (permalink)  
Antiguo 16/05/2012, 02:29
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Duda con consulta SQL extensa

30.000 tampoco es un numero muy alto....

Intenta esta segunda opción...

Código MySQL:
Ver original
  1. SELECT w.idUsuario,w.usuario
  2. FROM usuariosWeb w
  3. WHERE w.idUsuario NOT IN (SELECT idUsuario FROM usuariosForo);


No tiene mucho sentido tener dos tablas que deben tener los mismos registros.... es un principio basico de toda bbdd relacional no guardar dos veces los mismos datos para evitar precisamente este problema.... incluso no se debe guardar una info que se pueda calcular a partir de la ya guardada....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 16/05/2012, 03:16
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda con consulta SQL extensa

Efectivamente nosotros utilizamos una unica tabla para los usuarios pero hasta que no integremos la autenticacion del foro con la de nuestra tabla tendremos que seguir con la tabla del mismo foro.

La consulta que me has pasado haria un select de 30.000 filas, y en cada select haria otro de otras 27.000 por ejemplo. Eso no me trabaria la base de datos?
  #6 (permalink)  
Antiguo 16/05/2012, 03:26
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, 5 meses
Puntos: 2658
Respuesta: Duda con consulta SQL extensa

No hace un subselect en cada registro, sino un matchig de todo lo devuelto contra una lista de valores basada en un sólo campo. Lo que dices sería si el subselect estuviese en el SELECT.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: extensa, sql
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 21:11.