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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-08-2017
Unkger Unkger is offline
Miembro
NULL
 
Registrado: ago 2017
Posts: 13
Poder: 0
Unkger Va por buen camino
DELETE con JOIN

Hola!, tengo una pequeña base de datos en SQL Server 2016 llamada Escuela, con las tablas Alumnos, Carrera y Datos, lo que quiero es eliminar los alumnos con la carrera en "Ing. Quimica", tengo llaves primarias en las tres tablas, y 2 foraneas (id_carrera) haciendo referencia a la tabla Carrera, y (id_alumno) haciendo referencia a la tabla Alumnos:

Código SQL [-]
create database Escuela

use Escuela

create table Carrera(
id_carrera int not null primary key, 
carrera varchar(50)
);

create table Alumnos(
id_alumno int not null primary key, nombre varchar(50),
apellidos varchar(50), 
id_carrera int constraint fk_alumnos_carrera foreign key (id_carrera) references Carrera(id_carrera)
);

create table Datos(
id_datos int not null primary key, 
id_alumno int constraint fk_datos_alumnos foreign key (id_alumno) references Alumnos(id_alumno),
correo varchar(50),
edad int
);

insert into Alumnos values(1, 'Jose', 'Rodriguez', 1);
insert into Alumnos values(2, 'Alan', 'Herrera', 2);
insert into Alumnos values(3, 'Estephany', 'Castillo', 3);
insert into Alumnos values(4, 'Pablo', 'Hernandez', 4);

insert into Carrera values(1, 'Ing. Quimica');
insert into Carrera values(2, 'Ing. Industrial');
insert into Carrera values(3, 'Ing. Sistemas');
insert into Carrera values(4, 'Ing. Civil');

insert into Datos values(1, 1, 'correo_jose@gmail.com', 22);
insert into Datos values(2, 2, 'correo_alan@gmail.com', 54);
insert into Datos values(3, 3, 'correo_estephany@gmail.com', 65);
insert into Datos values(4, 4, 'correo_pablo@gmail.com', 76);

Hice esto pero me sale un error:

Código SQL [-]
delete alumnos from alumnos join carrera on alumnos.id_carrera = carrera.id_carrera 
where carrera.carrera = 'Ing. Quimica';

Error que me sale:

Cita:
The DELETE statement conflicted with the REFERENCE constraint "fk_datos_alumnos". The conflict occurred in database "Escuela", table "dbo.Datos", column 'id_alumno'.
The statement has been terminated.
Responder Con Cita
 



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
usando LEFT JOIN o RIGHT JOIN alcides SQL 8 03-05-2007 17:35:46
left join e inner join duda Patricio SQL 0 26-04-2007 22:06:43
LEFT INNER JOIN & RIGHT INNER JOIN Cabanyaler MS SQL Server 11 07-11-2005 18:09:58
LEFT OUTER JOIN e INNER JOIN Juntos alcides SQL 3 08-07-2005 18:06:27
SQL delete scooterjgm SQL 3 24-09-2004 11:05:30


La franja horaria es GMT +2. Ahora son las 02:23:56.


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