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

Duda para realizar consulta

Estas en el tema de Duda para realizar consulta en el foro de Bases de Datos General en Foros del Web. hola amigos, tengo dudas para realizar la siguiente consulta: necesito listar los usuarios que no participaron de la instalacion de una estacion (station_id ) tablas ...
  #1 (permalink)  
Antiguo 03/03/2014, 22:43
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Duda para realizar consulta

hola amigos, tengo dudas para realizar la siguiente consulta: necesito listar los usuarios que no participaron de la instalacion de una estacion (station_id )

tablas
Código SQL:
Ver original
  1. CREATE TABLE users
  2. (
  3.   id serial NOT NULL,
  4.   first_name CHARACTER VARYING(255),
  5.   last_name CHARACTER VARYING(255),
  6.   CONSTRAINT users_pkey PRIMARY KEY (id),
  7. )
  8.  
  9. CREATE TABLE installs
  10. (
  11.   id serial NOT NULL,
  12.   usuario_id INTEGER,
  13.   station_id INTEGER,
  14.   CONSTRAINT installs_pkey PRIMARY KEY (id)
  15. )

Última edición por Montes28; 03/03/2014 a las 22:53
  #2 (permalink)  
Antiguo 04/03/2014, 09:51
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Duda para realizar consulta

Si estas usando sql server esta es la consulta:

Código SQL:
Ver original
  1. SELECT * FROM users AS t1
  2. LEFT JOIN installas AS t2 ON (t1.id_serial=t2.usuario_id)
  3. WHERE t2.usuario_id IS NULL
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 04/03/2014, 10:01
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Duda para realizar consulta

Libras gracias por responder

Estoy utilizando postgresql , lo que necesito es listar los usuarios que no interviniero en la instalacion de una estacion
  #4 (permalink)  
Antiguo 04/03/2014, 10:01
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Duda para realizar consulta

seria la misma logica, pero no se como hacerlo en posgress....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 04/03/2014, 10:08
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Duda para realizar consulta

en postgres es asi la consulta que me indicaste Libras

Código SQL:
Ver original
  1. SELECT * FROM users AS t1
  2. LEFT JOIN installs AS t2 ON (t1.id = t2.usuario_id)
  3. WHERE t2.usuario_id IS NULL

pero no tengo encuenta el station_id
  #6 (permalink)  
Antiguo 04/03/2014, 10:10
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Duda para realizar consulta

y para que quieres tomar en cuenta el station id si no tiene ninguna relacion con la tabla usuarios que pones.....ahi los usuarios que salen en el query son los que no estan en la tabla de instalacion por lo tanto no participaron....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 04/03/2014, 10:20
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Duda para realizar consulta

en la tabla installs guardo los usuarios que participaron en la instacion de una o varias estaciones
  #8 (permalink)  
Antiguo 04/03/2014, 10:35
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Duda para realizar consulta

la consulta la realizaria asi

Código SQL:
Ver original
  1. SELECT * FROM users AS t1
  2. LEFT JOIN installs AS t2 ON (t1.id = t2.usuario_id AND t2.station_id = 223 )
  3. WHERE t2.usuario_id IS NULL
  #9 (permalink)  
Antiguo 04/03/2014, 10:38
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Duda para realizar consulta

por eso, si el usuario no esta en installs entonces no tiene participacion en la instalacion, estas haciendo un select * lo que quiere decir que te va a regresar todos los datos, si ocupas menos datos entoces indica cuales son las columnas que te interesan
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #10 (permalink)  
Antiguo 04/03/2014, 12:47
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Duda para realizar consulta

hola libras gracias por responder.

te explico un poco: primero se ingresa una estacion al sistema(tabla stations), al estar esta ya creada en el sistema obtengo el id y adiciono a la tabla installs el id del usuario (tabla users) que participo en la intalacion y el id de la estacion.

Tengo un formulario donde listo los usarios que participaron en la instalacion de una sola estacion, entonces por ejemplo en esta instalacion participo el usuario con el id 1 entonces en un selec que lleno de acuerdo a la consulta necesito listar todos los usuarios menos el usuario con id 1

me hice entender?
  #11 (permalink)  
Antiguo 04/03/2014, 13:13
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Duda para realizar consulta

y esto:

Código SQL:
Ver original
  1. SELECT * FROM users AS t1
  2. LEFT JOIN installs AS t2 ON (t1.id = t2.usuario_id AND t2.station_id = 223 )
  3. WHERE t2.usuario_id IS NULL

te regresa lo que necesitas???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #12 (permalink)  
Antiguo 04/03/2014, 13:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Duda para realizar consulta

si me regresa lo que necesito.

conceptualmente esta mal construida?
  #13 (permalink)  
Antiguo 04/03/2014, 13:21
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Duda para realizar consulta

Asi esta bien, yo no tengo ejemplo de tus datos, por lo que mi consulta era mas "generica" solo para que te dieras una idea de como armar la tuya, si necesitas tener el id en el where esta bien :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: dudas, siguiente, tabla
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 14:30.