quote:
Originally posted by MrScenic
Hi, ich nutze schon länger XMM, bin allerdings mit der Personendatenbank unzufrieden.
Ich würde gern alle Personen löschen, die keine Filmverknüpfung (mehr) haben. Beim löschen der Filme aus der Datenbank bleiben die Personen ja trotzdem noch drin. Gibt es eine Möglichkeit - zum Beispiel via Filter - diese heraus zu filtern?
Danke und Gruß
Zur Zeit geht das mit Bordmitteln wohl nicht. Man könnte sich mit Access behelfen, wenn es denn verfügbar ist.
Nachfolgendes ohne Garantie, dass es richtig ist / gewünschte Ergebnisse erzielt!
Ich selbst verwende diesen Query hin und wieder, um einen groben Überblick zu bekommen - besser wäre sicher, mehrere Queries zu verwurschteln, aber dafür fehlt mir der innere Drang :
In SQL:
SELECT People.PeopleID AS People_PeopleID
,People.NAME
,People.Sex
,People.SortName
,People.Cover
,ActorsLink.PeopleID AS ActorsLink_PeopleID
,ActorsLink.MovieID AS ActorsLink_MovieID
,ActorsLinkEpisode.EpisodeID
,DirectorsLink.MovieID
,DirectorsLinkEpisode.EpisodeID
,WritersLink.MovieID
,WritersLinkEpisode.EpisodeID
,ProducersLink.MovieID
,MusiciansLink.MovieID
,EditorsLink.MovieID
,PhotographersLink.MovieID
FROM (
(
(
(
(
(
(
(
(
People LEFT JOIN ActorsLink ON People.[PeopleID] = ActorsLink.[PeopleID]
) LEFT JOIN ActorsLinkEpisode ON People.PeopleID = ActorsLinkEpisode.PeopleID
) LEFT JOIN DirectorsLink ON People.PeopleID = DirectorsLink.PeopleID
) LEFT JOIN DirectorsLinkEpisode ON People.PeopleID = DirectorsLinkEpisode.PeopleID
) LEFT JOIN EditorsLink ON People.PeopleID = EditorsLink.PeopleID
) LEFT JOIN MusiciansLink ON People.PeopleID = MusiciansLink.PeopleID
) LEFT JOIN PhotographersLink ON People.PeopleID = PhotographersLink.PeopleID
) LEFT JOIN ProducersLink ON People.PeopleID = ProducersLink.PeopleID
) LEFT JOIN WritersLink ON People.PeopleID = WritersLink.PeopleID
)
LEFT JOIN WritersLinkEpisode ON People.PeopleID = WritersLinkEpisode.PeopleID
WHERE (
((People.SortName) = "")
AND ((ActorsLink.PeopleID) IS NULL)
AND ((ActorsLink.MovieID) IS NULL)
AND ((ActorsLinkEpisode.EpisodeID) IS NULL)
AND ((DirectorsLink.MovieID) IS NULL)
AND ((DirectorsLinkEpisode.EpisodeID) IS NULL)
AND ((WritersLink.MovieID) IS NULL)
AND ((WritersLinkEpisode.EpisodeID) IS NULL)
AND ((ProducersLink.MovieID) IS NULL)
AND ((MusiciansLink.MovieID) IS NULL)
AND ((EditorsLink.MovieID) IS NULL)
AND ((PhotographersLink.MovieID) IS NULL)
)
ORDER BY People.NAME
,People.SortName;
PS: Hier wäre es wieder mal hilfreich, wenn die DB referenzielle Integrität anbieten würde...