MySQL - Eliminar en MYSQL

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 40 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Eliminar en MYSQL

Publicado por Nadia (1 intervención) el 15/09/2020 23:59:15
Estas son mis dos tabas y necesito eliminar a los maestros que tengan 2 materias


1
2
3
4
5
6
create table Profesor(
idProf varchar(5),
 Nombre varchar(30),
 Grado varchar(20),
 Sueldo integer,
 PRIMARY KEY (idProf));


1
2
3
4
5
6
7
create table Materia(
  idMat varchar(5),
 Nombre varchar(30),
 Creditos integer,
 idProf varchar(5),
 primary key (idMat),
 FOREIGN KEY (idProf) REFERENCES profesor(idProf));

Esto es ejemplo de lo que inserte:

1
insert into Profesor values("1","Jorge Juarez Molina","Doctorado",20000);

1
2
insert into Materia values("01","Español",4,"1");
 insert into Materia values("02","Algebra",5,"2");


Esta sentencia es la que realice, pero me marca error en JOIN


1
2
3
4
5
DELETE FROM Profesor P
JOIN Materia M
ON M.idProf = P.idProf
GROUP BY Profesor
HAVING count (M.idMat) = 2;

Me pueden ayudar, por favor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 650
Plata
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Eliminar en MYSQL

Publicado por joel (231 intervenciones) el 16/09/2020 07:58:34
Hola Nadia, haber si te sirve así:

1
2
3
4
5
DELETE FROM Profesor WHERE idProf IN (
	select p.idProf
	from Profesor p right JOIN Materia m ON p.idProf=m.idProf
	having count(m.idProf)=2
)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 201
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Eliminar en MYSQL

Publicado por Francisco (73 intervenciones) el 16/09/2020 20:35:11
Hola

Intenta con

1
2
3
4
5
6
7
8
9
10
11
12
DELETE
    materia.*
FROM
    materia
    INNER JOIN
    (
        SELECT idprof
        FROM materia
        GROUP BY idprof
        HAVING COUNT(*) >= 2
    ) AS a_eliminar ON
            a_eliminar.idprof = materia.idprof;

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha disminuido su posición en 39 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Eliminar en MYSQL

Publicado por Alejandro (1 intervención) el 20/09/2020 20:03:16
Hola, soy estudiante de Administración de sistemas informaticos en red y dentro del ciclo estoy estudiando el modulo de Gestión de base de datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar