0
我有一個電影Postgres數據庫,我想高效地列出演員演奏的所有電影,並列出所有電影中的演員。如何根據Postgres中的外鍵選擇數據?
目前我使用這兩個SELECT語句 (我bileive有更好的方式來做到這一點):
SELECT title FROM movies,castings WHERE movies.id = castings.movieid and castings.actorid = (SELECT id FROM actors where name = $name and sname = $sname);
SELECT name, sname FROM actors,castings WHERE actors.id = castings.actorid and castings.movieid = (SELECT id FROM movies where title = $title);
數據庫:
CREATE SEQUENCE directors_id_seq;
CREATE TABLE directors (
id BIGINT PRIMARY KEY DEFAULT nextval('directors_id_seq'),
name TEXT,
sname TEXT
);
CREATE SEQUENCE actors_id_seq;
CREATE TABLE actors (
id BIGINT PRIMARY KEY DEFAULT nextval('actors_id_seq'),
name TEXT,
sname TEXT
);
CREATE SEQUENCE movies_id_seq;
CREATE TABLE movies (
id BIGINT PRIMARY KEY DEFAULT nextval('movies_id_seq'),
title TEXT NOT NULL,
year INT NOT NULL,
votes INT,
score INT,
director BIGINT NOT NULL REFERENCES directors (id)
);
CREATE TABLE castings (
movieid BIGINT REFERENCES movies (id),
actorid BIGINT REFERENCES actors (id),
ord INT,
PRIMARY KEY (movieid, actorid)
);
我怎麼能列出所有電影由演員演奏? 如何列出在電影中播放的所有演員?
- 謝謝,
這工作,看起來更好!謝謝! – hythm