Seleccionar registros de una tabla con relaciones padre e hijos en MySql.
¡Hola y bienvenido a mi pregunta!
Tengo esta tabla:
CREATE TABLE IF NOT EXISTS business(
businessname varchar(250) NOT NULL,
title varchar(250) NOT NULL,
registerdate datetime NOT NULL,
id int NOT NULL,
city varchar(50) NOT NULL,
tk varchar(10) NOT NULL,
number varchar(20) NOT NULL,
branch int,
doy_id int NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (branch) REFERENCES business(id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (doy_id) REFERENCES doy(id_kataxorisis)
ON DELETE CASCADE ON UPDATE CASCADE
)
Como puede ver, esta tabla representa una empresa, aunque no muy bien.
La columna branch
representa la “hija” de una empresa.
Deseo encontrar (con una declaración select
) el nombre de cada empresa y su empresa matriz, si la empresa no tiene empresa matriz, debe mostrar NULL.
He estado pensando en esto por algún tiempo y ni siquiera sé por dónde empezar. ¿Podría ayudarme, por favor?
davy.ai
Claro, puedo ayudarte con esto. Puedes usar la siguiente instrucción
SELECT
para obtener el resultado deseado:Esta instrucción devolverá el nombre de cada empresa y su empresa matriz, o
NULL
si la empresa no tiene una empresa matriz.