Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-11-2019
Avatar de cl2raul
cl2raul cl2raul is offline
Miembro
 
Registrado: sep 2008
Ubicación: La Habana, Cuba
Posts: 88
Poder: 16
cl2raul Va por buen camino
consultar tres tablas y mostrar campo vacío

Hola a todos, tengo un problema al consultar una base de datos sqlite3... Quiero hacer una consulta dónde utilizo 3 tablas, el problema es que tengo un campo vacío (Marca_Id), este campo lo utilizo para vincular la tabla Marcas con la tabla Artículos, y así obtener los campos MarcaNombre y MarcaImg... Siguiendo la lógica, si este campo está vacío no puedo llamar los campos MarcaNombre y MarcaImg y debe mostrarlos vacío.
Responder Con Cita
  #2  
Antiguo 23-11-2019
Avatar de cl2raul
cl2raul cl2raul is offline
Miembro
 
Registrado: sep 2008
Ubicación: La Habana, Cuba
Posts: 88
Poder: 16
cl2raul Va por buen camino
Aaqui una captura de pantalla de la consulta, IMG-20191123-WA0007.jpgIMG-20191123-WA0007.jpg
Responder Con Cita
  #3  
Antiguo 23-11-2019
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Hola Compañero:

no tengo una experiencia grande en sql pero en fin las bases son estandart para todo lenguaje y las experiencia sin numerar asi que te sugiero utilizar

Ejemplo:
Código SQL [-]

SELECT a1, a2, b1, b2
FROM A
FULL OUTER JOIN Productos ON Articulos.Productos_Id = Productos.Id_productos;

Group by Articulos.Nombre

esto es la idea de lo que puedes hacer para verificar y saber que realmente te arroja.


Saludos y Bendiciones;
Responder Con Cita
  #4  
Antiguo 23-11-2019
Avatar de cl2raul
cl2raul cl2raul is offline
Miembro
 
Registrado: sep 2008
Ubicación: La Habana, Cuba
Posts: 88
Poder: 16
cl2raul Va por buen camino
Gracias novato Erick, lo probaré, pero recuerda que utilizo 3tablas una tienes los nombre de los productos y el id, otra es marcas, tiene id, nombre e imagen, y por último la tabla artículos, que tiene nombre, descripción, imagen, idmarca(que puede estar vacío) y idproductos... El problema es que cuando agrego en artículos y resulta que este no tiene una marca, se queda en nulo, cuando visualizo la tabla artículos me carga el primer nombre y la imagen de la marca
Responder Con Cita
  #5  
Antiguo 23-11-2019
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Cita:
Empezado por cl2raul Ver Mensaje
Gracias novato Erick, lo probaré, pero recuerda que utilizo 3tablas una tienes los nombre de los productos y el id, otra es marcas, tiene id, nombre e imagen, y por último la tabla artículos, que tiene nombre, descripción, imagen, idmarca(que puede estar vacío) y idproductos... El problema es que cuando agrego en artículos y resulta que este no tiene una marca, se queda en nulo, cuando visualizo la tabla artículos me carga el primer nombre y la imagen de la marca
es correcto el ejemplo que te postie fue con fines ilustrativos puedes agregar n cantidad de tablas relacionadas usando el FULL OUTER JOIN siempre te arrojara los campos que no esten. tambien puedes ver algo pareceido a la definicion de las uniones muy visual por cierto...

https://clubdelphi.com/foros/showthread.php?t=94308




Saludos;

novato_erick

Última edición por novato_erick fecha: 23-11-2019 a las 18:37:22.
Responder Con Cita
  #6  
Antiguo 23-11-2019
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
también puedes leer un poco de aquí:

https://www.w3resource.com/sqlite/sqlite-left-join.php

hay mucho material ilustrativo, educativo y profesional y sobre todo este foro que enriquece mucho los conocimientos por los compañeros.


Saludos;
Responder Con Cita
  #7  
Antiguo 23-11-2019
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Cita:
Empezado por cl2raul Ver Mensaje
El problema es que cuando agrego en artículos y resulta que este no tiene una marca, se queda en nulo, cuando visualizo la tabla artículos me carga el primer nombre y la imagen de la marca
Disculpa no me habia percatado en esta parte:

ahí hay un asunto de lógica. hay posibles soluciones para corregir eso:

1- Tienes tu tabla madre de marcas la cual tienes marcas especificas en mi caso para corregir ese problema y no tener ese inconveniente cree un registro llamado SIN MARCA la cual al ingresar desde el formulario de Artículos simplemente se selecciona eso me ayudó mucho a la hora de mantener la integridad de la info con las consultas mas si usamos llaves foraneas.

me expliqué?

En fin si está a tu alcance realizar esa modificación en tu formulario de artículos es lo que te recomiendo pero si ya estas en producción bueno te la puedes arreglar con la consulta anidada como ya he mencionado puedes colocar la función coalesce(X,Y,...) "Creo que sqlLite es lo mismo que Firebird "para que no traiga "NULL" en el reporte algo desagradable ya que siempre se quiere ver info.

Saludos;

novato_erick
Responder Con Cita
  #8  
Antiguo 23-11-2019
Avatar de cl2raul
cl2raul cl2raul is offline
Miembro
 
Registrado: sep 2008
Ubicación: La Habana, Cuba
Posts: 88
Poder: 16
cl2raul Va por buen camino
Gracias, no me sirvió pero me dio la idea de cómo solucionarlo, utilizando left outer join
Responder Con Cita
  #9  
Antiguo 24-11-2019
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Cita:
Empezado por cl2raul Ver Mensaje
Gracias, no me sirvió pero me dio la idea de cómo solucionarlo, utilizando left outer join

Es la idea de este foro.


Saludos;
Responder Con Cita
  #10  
Antiguo 08-12-2019
Sonyah92 Sonyah92 is offline
Registrado
 
Registrado: dic 2019
Posts: 1
Poder: 0
Sonyah92 Va por buen camino
Cita:
Empezado por novato_erick Ver Mensaje
también puedes leer un poco de aquí:


hay mucho material ilustrativo, educativo y profesional y sobre todo este foro que enriquece mucho los conocimientos por los compañeros.


Saludos;
Hola, muchas gracias por compartir el enlace.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
campo vacio oscarac OOP 3 24-05-2017 05:55:46
Consulta de tres tablas Choclito SQL 1 22-05-2013 23:24:33
Consultar si registro existe en campo de 2 tablas jonydread Conexión con bases de datos 2 19-05-2013 23:26:37
Update con tres tablas elarys Firebird e Interbase 8 19-04-2013 17:38:36
como mostrar tres tablas en un dbgrid? soma25 C++ Builder 3 30-06-2006 00:17:34


La franja horaria es GMT +2. Ahora son las 10:56:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi