I’m currently working on the following homework:
CREATE TABLE T_1
(COURSE_NO CHAR(8) PRIMARY KEY,
COURSE_NAME CHAR(50) );
CREATE TABLE T_2
(COURSE_NO CHAR(8),
COURSE_NAME CHAR(50) );
CREATE TABLE T_3
(COURSE_NO CHAR(8),
STUDENT_ID CHAR(15),
GRADE CHAR (2));
INSERT INTO T_1
VALUES
('CS100','Data Structures'),
('CS200','Object Oriented Programming'),
('CS300','Distributed Systems'),
('EE100','Circuit Analysis'),
('EE200','VLSI Design'),
('EE300','Packet Switching Networks');
INSERT INTO T_2
VALUES
('EE100','Circuit Analysis'),
('EE200','VLSI Design'),
('EE300','Packet Switching Networks'),
('MA100','Calculus'),
('MA200','Advanced Calculus'),
('MA300','Number Theory');
INSERT INTO T_3
VALUES
('CS100','150-70-5879','B'),
('CS100','280-90-8766','A'),
('EE100','430-76-6858','B'),
('CS200','720-60-5000','B');
I’m requested to specify the tuples given: (T1 – T2) union (T2 – T1) Union (T1 intersect T2).
Now I know that MySQL uses the, either join for the minus operator, I’m able to process each minus in their own way like:
SELECT *
FROM T_1
LEFT JOIN T_2
ON T_1.Course_No = T_2.Course_no
WHERE T_2.Course_no IS NULL;
I can also do this for the T2 – T1 but I’m lost when it comes to doing it all in 1 query or how to (T1-T2) U (T2-T1) or (T2-T1) U (T1nT2).
Any help?
Not best, but very intuitive way:
We get following sql-query:
What is about T_3?
EDIT: