嗨,我有以下表格和列。在电影数据库mysql中完全外连接
movie: ID, title
person: ID, name
involved: personID, movieID
我需要回答这样的问题:
“哪个电影要么约翰·特拉沃尔塔和乌玛·瑟曼,但不能同时出演?”
我不知道如何做到这一点,而不创建新的表,所以我做了2个新表。并试图做完整的外连接,在那里你没有得到相交的结果。我发现你不能在mysql中进行完整的外连接,但必须进行左连接,并与右连接进行结合。我尝试过,但没有得到我想要的结果。我一直在卡住一段时间。任何人都可以将我指向正确的方向吗?
这是我到目前为止。
DROP TABLE IF EXISTS Umatable;
DROP TABLE IF EXISTS Johntable;
CREATE TABLE Umatable(title VARCHAR(500));
CREATE TABLE Johntable(title VARCHAR(500));
INSERT INTO Umatable
SELECT m.title
FROM movie m, person p, involved i
WHERE p.name = "Uma Thurman"
AND p.id = i.personid
AND m.id = i.movieiD;
INSERT INTO Johntable
SELECT m.title
FROM movie m, person p, involved i
WHERE p.name = "John Travolta"
AND p.id = i.personid
AND m.id = i.movieiD;
SELECT *
FROM Umatable
LEFT JOIN Johntable ON Umatable.title = Johntable.title
WHERE Johntable.title IS NULL OR Umatable.title IS NULL
UNION
SELECT *
FROM Umatable
RIGHT JOIN Johntable ON Umatable.title = Johntable.title
WHERE Johntable.title IS NULL OR Umatable.title IS NULL