ich einige Probleme mit versuchen, dies herauszufinden,MySQL Join verschiedene Reihen in verschiedene Spalten
ich leicht mit einer Schleife machen kann somit eine zweite Abfrage innerhalb des ersten zu machen, aber das macht scheint nicht zu effizient sein.
Ziel ist es, ein Array von Zeilen zu erhalten, die den Songnamen und die verschiedenen Dateitypen Dateinamen enthalten.
Hier vereinfacht Versionen der beiden Tabellen:
Songs:
song_id*
song_title
Song_files:
file_id
file_song_id*
file_format
file_name
Gewünschtes Ergebnis:
[
{
"song_id": "1",
"song_title": "Musica Teste 1",
"song_mp3_filename": "song1.mp3",
"song_wav_filename": "song1.wav",
"song_flac_filename": "song1.flac"
},
{
"song_id": "2",
"song_title": "Musica Teste 2",
"song_mp3_filename": "song2.mp3",
"song_wav_filename": "song2.wav",
"song_flac_filename": "song2.flac"
},
{
"song_id": "3",
"song_title": "Musica Teste 3",
"song_mp3_filename": "song3.mp3",
"song_wav_filename": "song3.wav",
"song_flac_filename": "song3.flac"
}
]
Gibt es eine effizientere Möglichkeit, dies ohne Schleife über PHP zu tun?
Danke!
Was ist Ihr aktuelles Abfrage?SELECT song_id, song_title, song_extra_title, song_duration, song_mp3_filename, song_wav_filename, song_flac_filename FROM songs s JOIN song_files f ON s.song_id = f.file_song_id; 'verbindet die beiden Tabellen und gibt diese zurück. – WOUNDEDStevenJones
Die Spalten _song_extra_title, song_duration, song_mp3_filename_ existieren nicht, der von Ihnen vorgeschlagene Join gibt mir 1 Songtitel pro Dateityp, was ich suche ist eine Zeile pro Song, und auf dieser Zeile haben die diferente Dateinamen – Impossivel
I Finde die gesuchten Dateien mit den verschiedenen Dateinamen ('WHERE datei_format = 'mp3'' usw., nehme ich an), aber woher kommen' song_extra_title' und 'song_duration'? – WOUNDEDStevenJones