Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Subconsulta De Una Columna Que Contiene Solo Un Id?[Resuelto]
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Subconsulta De Una Columna Que Contiene Solo Un Id?[Resuelto] 
 
buenas....

sinceramente no se como formular la pregunta....

pero trata de lo siguiente

tenemos una tabla productos donde se encuentra una llave foránea a el id de proveedores osea un numero integer

por otro lado tenemos un txt donde haremos búsquedas de nombres de proveedores, pero no podemos hacer una búsqueda directa en la tabla productos, porque ahí solo esta el id del proveedor no su nombre.

como se hace esto?
una subconsulta? como seria esa subconsulta?

tal vez obtener primero todos los nombres de proveedores en un array y recién buscar ahí según el filtro aplicado?

como se hace este proceso?
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Martes, 30 Agosto 2016, 21:59; editado 3 veces 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Subconsulta De Una Columna Que Contiene Solo Un Id? 
 
No te líes con eso de que sean llaves foráneas, la consulta se hace exactamente igual que con otros campos.

Select a.campo1, a.campo2,a.campo3, b.nombre from productos a left join proveedores b on a.idproveedor = b.rowid


Mas o menos...
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Subconsulta De Una Columna Que Contiene Solo Un Id? 
 
En mi opinión, la consulta debe ser:

select b.nombre,a.descripcion
from tblproductos as a
inner joint tblproveedores as b
on a.id_pro=b.id
where []


de esta forma consigues el nombre del proveedor (directo de la tabla) y la descripción (por poner un campo) de la tabla productos, A y B son Alias para simplificar las consultas.

Saludos.
 



 
calcena - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Subconsulta De Una Columna Que Contiene Solo Un Id? 
 
calcena escribió: [Ver mensaje]
En mi opinión, la consulta debe ser:

select b.nombre,a.descripcion
from tblproductos as a
inner joint tblproveedores as b
on a.id_pro=b.id
where []


de esta forma consigues el nombre del proveedor (directo de la tabla) y la descripción (por poner un campo) de la tabla productos, A y B son Alias para simplificar las consultas.

Saludos.


Inner join te deja fuera de la consulta los productos que no contengan id de proveedor o cuyo id de proveedor es erróneo. Eso hace que, en caso de error en tus bases de datos, tales regisgros sean "invisibles" y no puedas detectar lo que hay de malo en ellas. Sobre todo al ver que los recuentos que hagas con otras consultas no te cuadran con las filas que devuelve ésta.
Left join, por el contrario, muestra todos los registros de productos y el nombre del proveedor si es que el enlace es bueno, dejando el campo nombre del proveedor a NULL en caso de error, lo cual es muy fácilmente detectable.

Saludos.
 




===================
No podemos regresar
 
última edición por shordi el Jueves, 18 Agosto 2016, 10:18; editado 2 veces 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Subconsulta De Una Columna Que Contiene Solo Un Id? 
 
Buenas shordi, como bien indicas LEFT join nos trae todos los registros de productos, pero mi pregunta es
¿es correcto tener inconsitencias en una DB?
para eso tenemos los PK - FK que evitan mediante Constraint, etc.
Por otra parte, también es posible que el compañero solo tenga datos en un sitio y no en otro, por lo que LEFT le va mucho mejor.
Eso ya depende, para mi gusto y desarrollos casi al 98% INNER JOIN porque solo tengo datos constrastados.
Detectar una inconsistencia en DB es un quebradero de cabezas, se debe implementar muy bien desde un principio si no ....son horas de debug.
Saludos.
 



 
calcena - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Subconsulta De Una Columna Que Contiene Solo Un Id? 
 
Citar:
¿es correcto tener inconsitencias en una DB?

Por supuesto que no es correcto... pero si tu base es 100% consistente, el resultado de left y de inner es exactamente el mismo. ¿Qué ventaja tiene entonces Inner?

Además, en cuestión de inconsistencias... "el que esté libre de culpa que tire la primera piedra"      
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Subconsulta De Una Columna Que Contiene Solo Un Id? 
 
shordi escribió: [Ver mensaje]
No te líes con eso de que sean llaves foráneas, la consulta se hace exactamente igual que con otros campos.

Select a.campo1, a.campo2,a.campo3, b.nombre from productos a left join proveedores b on a.idproveedor = b.rowid


Mas o menos...


me suena que esa linea no es correcta, ya que like debe estar presente

ya que debemos buscar por un filtro que nos dará un textbox.text
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Subconsulta De Una Columna Que Contiene Solo Un Id? 
 
Citar:
me suena que esa linea no es correcta, ya que like debe estar presente


A éstas alturas ya deberías ser capaz de añadir el where por tí mismo...

Vale, te lo pongo yo, pa que no te pierdas    
Select a.campo1, a.campo2,a.campo3, b.nombre from productos a left join proveedores b on a.idproveedor = b.rowid where micampo like '%mitextbox.tex%'

 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Subconsulta De Una Columna Que Contiene Solo Un Id? 
 
shordi escribió: [Ver mensaje]
Citar:
me suena que esa linea no es correcta, ya que like debe estar presente


A éstas alturas ya deberías ser capaz de añadir el where por tí mismo...

Vale, te lo pongo yo, pa que no te pierdas    
Select a.campo1, a.campo2,a.campo3, b.nombre from productos a left join proveedores b on a.idproveedor = b.rowid where micampo like '%mitextbox.tex%'



según esa sentencia quedaría algo así.. pero no anda no se que hago mal.. necesito ver una sentencia real correcta para entender bien como es la sintaxis....

SELECT a.*, b.nombre FROM productos a LEFT JOIN proveedores b ON a.idproveedor = b.idproveedor WHERE nombre LIKE '%Sin%'



dejo tres capturas:

 inventario

 productos

 proveedores
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Subconsulta De Una Columna Que Contiene Solo Un Id? 
 
calcena escribió: [Ver mensaje]
En mi opinión, la consulta debe ser:

select b.nombre,a.descripcion
from tblproductos as a
inner joint tblproveedores as b
on a.id_pro=b.id
where []


de esta forma consigues el nombre del proveedor (directo de la tabla) y la descripción (por poner un campo) de la tabla productos, A y B son Alias para simplificar las consultas.

Saludos.


gracias por el dato, importante aclaración
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes ¿Consulta Anidada O Subconsulta? Sqlite Dani26 Bases de Datos 3 Sabado, 27 Octobre 2012, 11:00 Ver último mensaje
jguardon
No hay nuevos mensajes Como Hacer Una Subconsulta En Sqlite? v3ctor Bases de Datos 15 Jueves, 16 Marzo 2017, 18:53 Ver último mensaje
jsbsan
No hay nuevos mensajes String Que Contiene Parte De Otro [Solucio... calcena General 5 Miercoles, 09 Octobre 2019, 17:32 Ver último mensaje
gambafeliz
No hay nuevos mensajes Un Panel Que Contiene Algunos Label Y Otro... gambafeliz General 7 Miercoles, 09 Octobre 2019, 17:43 Ver último mensaje
gambafeliz
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron