我正在开发一个允许用户搜索音乐,艺术家,专辑和混音带的应用程序。 DB有四个表:音乐,艺术家,混音带,专辑。 3个表;混音带,音乐和专辑与艺术家在名为artist_id的列中使用外键相关。 通过使用如下查询来获取三个表中每个表的搜索结果非常容易:
$music = "SELECT * FROM music WHERE song_title LIKE '%$search_term%'";
但是,我发现获得专辑,混音带和音乐的结果有点令人生畏,其中artist_name =搜索词,因为艺术家的引用不是通过名称而是通过artist_id 如何为用户提供的搜索词(即艺术家)返回音乐,专辑和混音带的结果?
答案 0 :(得分:0)
您可以使用inner join
"SELECT * FROM music INNER JOIN artist ON music.artist_id = artist.id WHERE artist.name LIKE '%$search_term%'";
答案 1 :(得分:0)
您需要在表之间使用连接,如下所示:
select * from music m
inner join artists a on (m.artist_id = a.artist_id)
where a.artist name like ....