こんにちは、次のテーブルと列があります。
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