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

ayuda con select

Estas en el tema de ayuda con select en el foro de PostgreSQL en Foros del Web. Buenas necesito que me ayuden estoy medio dormido ya, como puedo hacer un select que me entregue los nombres de los empleados que no tienen ...
  #1 (permalink)  
Antiguo 15/07/2009, 19:03
 
Fecha de Ingreso: noviembre-2007
Mensajes: 237
Antigüedad: 17 años
Puntos: 4
ayuda con select

Buenas necesito que me ayuden estoy medio dormido ya, como puedo hacer un select que me entregue los nombres de los empleados que no tienen asignado un usuario

tablas:


empleado (rut, nombre)
usuario(username, pass, rut)

gracias de antemano ;)

Saludos
  #2 (permalink)  
Antiguo 15/07/2009, 20:46
 
Fecha de Ingreso: noviembre-2007
Mensajes: 237
Antigüedad: 17 años
Puntos: 4
Respuesta: ayuda con select

averigue como, lo saque del foro, pero me queda una duda, que es lo que hace " <> "???

Select empleado.nombre from empleado inner join usuario on empleado.rut <> usuario.rut

Saludos
  #3 (permalink)  
Antiguo 15/07/2009, 22:05
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: ayuda con select

<> significa diferente.
Es equivalente a decir !=

Select empleado.nombre from empleado inner join usuario on empleado.rut <> usuario.rut
es igual a
Select empleado.nombre from empleado inner join usuario on empleado.rut != usuario.rut
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 16/07/2009, 16:09
 
Fecha de Ingreso: noviembre-2007
Mensajes: 237
Antigüedad: 17 años
Puntos: 4
Respuesta: ayuda con select

gracias, ahora me quedo mas claro
  #5 (permalink)  
Antiguo 20/07/2009, 17:49
 
Fecha de Ingreso: noviembre-2007
Mensajes: 237
Antigüedad: 17 años
Puntos: 4
Respuesta: ayuda con select

una duda mas, la consulta tiene un problema ya que cuando no existe ni un empleaodo asgnado, no me entrega los datos de estos, pero si, cuando uno o mas estan asignados funciona correctamente, cual seria el error? se entiende? gracias
  #6 (permalink)  
Antiguo 21/07/2009, 06:34
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: ayuda con select

Es por utilizar inner join que establece una relación entre las tablas donde existan registros en ambas tablas.
Prueba con left join o full join

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 21/07/2009, 13:27
 
Fecha de Ingreso: noviembre-2007
Mensajes: 237
Antigüedad: 17 años
Puntos: 4
Respuesta: ayuda con select

gracias era esa la solucion ;)
  #8 (permalink)  
Antiguo 21/07/2009, 13:34
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: ayuda con select

__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #9 (permalink)  
Antiguo 21/07/2009, 14:25
 
Fecha de Ingreso: noviembre-2007
Mensajes: 237
Antigüedad: 17 años
Puntos: 4
Respuesta: ayuda con select

sorry huesos52 por molestar tanto, pero aun no hace lo qie quiero, te explico

cuando en la tabla usuario, tengo asignado un empleado, la sentencia me devuelve lo que quiero, pero cuando no tiene asignado ni un empleado no me trae nada, deberia devolver mas datos :( en que estoy mal??

Código PHP:
Select e.x_nombree.kx_rute.x_apellido from empleado as e right join usuario as u on e.kx_rut <> u.kx_rut where e.x_estado_e'Libre' 
las tablas son

Usuario(usuario PK, pass, rut_emple FK)
empleado(rut PK, nombre, apellido)
  #10 (permalink)  
Antiguo 21/07/2009, 14:41
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: ayuda con select

oscar2h

según veo, tienes dos tablas. Y es posible que existan empleados registrados que no estén relacionados con la tabla usuarios.

Right join, muestra todos los registros que tienen en común las tablas empleado y usuario y ademas de eso, los registros que tiene usuario(Por estar a la derecha) que no tiene empleados.

Veo que tu situación es contraria y también requieres los empleados sin importar si pertenecen a la tabla usuario.

Cambia tu right join por un left join y cuentanos como te va.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #11 (permalink)  
Antiguo 21/07/2009, 14:49
 
Fecha de Ingreso: noviembre-2007
Mensajes: 237
Antigüedad: 17 años
Puntos: 4
Respuesta: ayuda con select

gracias por la rapidez, buscando en el foro encontre la solucion para lo que necesitaba, ak dejo como:

http://www.forosdelweb.com/f21/sql-q...t-join-509873/

SELECT e.x_nombre, e.kx_rut, e.x_apellido FROM empleado e WHERE NOT EXISTS(SELECT 1 FROM usuario u WHERE u.kx_rut = e.kx_rut)

gracias huesos, e aprendido con tu ayuda
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 17:15.