add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE students (
StudentName VARCHAR(255),
StudentID VARCHAR(255)
);
INSERT INTO students VALUES ('Biplab', '04CS9501'),
('Amit', '05CS3001'),
('Rahul', '05CS3003'),
('Divya', '05CS3004'),
('Praveen', '05CS3005');
CREATE TABLE courses (
CourseName VARCHAR(255),
CourseID VARCHAR(255)
);
INSERT INTO courses VALUES
('Business and Science', 'B3D'),
('Economics', 'B3B'),
('Business and Laws', '63O1'),
('Economics and Laws', '63K1'),
('Economics and Science', 'B3E');
CREATE TABLE participation (
CourseID VARCHAR(255),
StudentID VARCHAR(255)
);
INSERT INTO participation VALUES
('B3D', '04CS9501'),
('B3D', '05CS300'),
('B3D', '05CS3003'),
('B3B', '05CS3003'),
('B3B', '05CS3004'),
('63O1', '04CS9501'),
('63O1', '05CS3004'),
('63K1', '05CS3001'),
('63K1', '05CS3003'),
('63K1', '05CS3004');
-- to get all empty courses
SELECT * FROM courses WHERE NOT CourseID IN (SELECT CourseID FROM participation)

CourseName CourseID
Economics and Science B3E
-- to get all students
SELECT * FROM students WHERE NOT StudentID IN (SELECT StudentID FROM participation)
StudentName StudentID
Praveen 05CS3005
SELECT 'Student' AS type, s.StudentID AS 'ID', s.StudentName AS 'Name'
FROM students s LEFT JOIN participation p ON s.StudentID = p.StudentID
WHERE p.CourseID IS NULL

UNION ALL

SELECT 'Course' AS type, c.CourseID, c.CourseName
FROM courses c LEFT JOIN participation p ON c.CourseID = p.CourseID
WHERE p.StudentID IS NULL

ORDER BY type, Name
type ID Name
Course B3E Economics and Science
Student 05CS3005 Praveen