Schönen Abend liebe Community,
ich weis der Titel ist nicht sonderlich Ausdrucksstark aber genau so ist es. Ich bastel gerade an einer MP3-Verwaltungssoftware für mich und nehme beim hinzufügen neuer Tracks die Discogs-Datenbank zu hilfe um die passenden Daten in meine ID3-Tags zu schreiben.
Dazu habe ich die Tabellen discogs_releases und discogs_artists welche über das feld artist_id verknüpft sind (und zwei Millionen Alben und deren Künstler beinhalten) und eine Tabelle releases, die eigentlich discogs_releases entspricht aber nur die Alben enthält, zu denen auch schon Mp3s hochgeladen wurden.
Jetzt lade ich einen neuen Song hoch und folgende Abfrage wird generiert:
SELECT discogs_releases.*, COUNT( releases.release_id ) AS number
FROM releases
RIGHT JOIN discogs_releases ON ( discogs_releases.release_id = releases.release_id )
LEFT JOIN discogs_artists ON ( discogs_releases.artist_id = discogs_artists.artist_id )
WHERE discogs_releases.artist_id = 'IdDesKünstlers'
AND discogs_releases.name LIKE 'NameDesAlbums'
Diese Abfrage soll Vorschläge liefern, zu welchem Album der Song gehören könnte und gleich mitausgeben, ob ein Album schon in der Mediathek steht. Lasse ich die Verknüpfung zu der Medithek weg, erhalte ich für ein Beispiel 9 mögliche Alben, mit der Verknüpfung wird nur das eine Ausgegeben, welches schon in der Mediathek steht. Was stimmt mit meinen Joins nicht?
ich weis der Titel ist nicht sonderlich Ausdrucksstark aber genau so ist es. Ich bastel gerade an einer MP3-Verwaltungssoftware für mich und nehme beim hinzufügen neuer Tracks die Discogs-Datenbank zu hilfe um die passenden Daten in meine ID3-Tags zu schreiben.
Dazu habe ich die Tabellen discogs_releases und discogs_artists welche über das feld artist_id verknüpft sind (und zwei Millionen Alben und deren Künstler beinhalten) und eine Tabelle releases, die eigentlich discogs_releases entspricht aber nur die Alben enthält, zu denen auch schon Mp3s hochgeladen wurden.
Jetzt lade ich einen neuen Song hoch und folgende Abfrage wird generiert:
SELECT discogs_releases.*, COUNT( releases.release_id ) AS number
FROM releases
RIGHT JOIN discogs_releases ON ( discogs_releases.release_id = releases.release_id )
LEFT JOIN discogs_artists ON ( discogs_releases.artist_id = discogs_artists.artist_id )
WHERE discogs_releases.artist_id = 'IdDesKünstlers'
AND discogs_releases.name LIKE 'NameDesAlbums'
Diese Abfrage soll Vorschläge liefern, zu welchem Album der Song gehören könnte und gleich mitausgeben, ob ein Album schon in der Mediathek steht. Lasse ich die Verknüpfung zu der Medithek weg, erhalte ich für ein Beispiel 9 mögliche Alben, mit der Verknüpfung wird nur das eine Ausgegeben, welches schon in der Mediathek steht. Was stimmt mit meinen Joins nicht?