Ich habe ein Tabellenschema alsFest mit einer MySQL-Abfrage
create table Location(
id int primary key,
city varchar(255),
state varchar(100),
country varchar(255)
);
create table Person(
id int primary key,
name varchar(100)
);
create table Photographer(
id int primary key references Person(id) on update cascade on delete cascade,
livesIn int not null references Location(id) on update cascade on delete no action
);
create table Specialty(
photographer int references Photographer(id) on update cascade on delete cascade,
type enum('portrait','landscape','sport'),
primary key(photographer, type)
);
create table Photo(
id int primary key,
takenAt timestamp not null,
takenBy int references Photographer(id) on update cascade on delete no action,
photographedAt int references Location(id) on update cascade on delete no action
);
create table Appearance(
shows int references Person(id) on update cascade on delete cascade,
isShownIn int references Photo(id) on update cascade on delete cascade,
primary key(shows, isShownIn)
);
ich zwei Abfragen steckte:
1) Die Fotos, so dass das Foto nur Fotografen zeigt, die in der gleichen Lage leben. Listen Sie jedes Foto einmal auf. Das heißt, Fotos müssen Personen haben, die Fotografen sind, und alle müssen am selben Ort leben.
2) Die Orte, die die Eigenschaft haben, dass jedes Foto in der Position von einem Fotografen genommen wurde, der in keinem Foto in Massachusetts gezeigt wird? Zeigen Sie für jeden Standort nur die Stadt an und zeigen Sie jeden Standort nur einmal an.
Meine Versuche: 1)
SELECT ph.id, ph.takenAt, ph.takenBy, ph.photographedAt FROM
(SELECT * FROM Photo p, Appearance ap WHERE p.id = ap.isShownIn
HAVING ap.shows IN (SELECT person.id FROM Person,Photographer WHERE person.id
photographer.id)) ph
WHERE ph.photographedAt = (SELECT location.id FROM location WHERE location.id =
(SELECT livesIn FROM Photographer WHERE id = ph.takenBy))
2)
select distinct city from location where location.id in (
select photographedAt from photo, (select * from appearance where appearance.shows in
(select photographer.id from photographer)) ph
where photo.id = ph.isShownIn)
and location.state <> 'Massachusetts'
Kann mir jemand helfen, diese Abfragen bei der Schaffung von ??
Sie 'JOIN's Forschung sollte – Kermit
@eakron ich bin nicht sicher, es wichtig ist, dass es Hausaufgaben ist. Das OP hat gepostet, was sie versucht haben. – Kermit
@njk es wichtig ist, weil wir keine vollständigen Code-Lösungen für die Hausaufgaben geben sollten –