0

我正在开发一个允许用户搜索音乐、艺术家、专辑和混音带的应用程序。DB 有这四个表:音乐、艺术家、混音带、专辑。3张桌子;混音带、音乐和专辑使用名为 artist_id 的列中的外键与艺术家相关联。使用这样的查询很容易从三个表中的每一个中获取搜索结果:

$music = "SELECT * FROM music WHERE song_title LIKE '%$search_term%'";

但是,我发现获取专辑、混音带和音乐的结果有点令人生畏,其中艺术家名称 = 搜索词,因为艺术家的参考不是按名称而是按艺术家 ID 如何返回音乐、专辑和混音带的结果用户提供的搜索词(即艺术家)?

4

2 回答 2

0

您可以通过使用inner join

"SELECT * FROM music INNER JOIN artist ON music.artist_id = artist.id WHERE artist.name LIKE '%$search_term%'";
于 2013-11-11T13:32:52.183 回答
0

您需要在表之间使用连接,如下所示:

select * from music m
inner join artists a on (m.artist_id = a.artist_id)
where a.artist name like ....
于 2013-11-11T13:33:52.563 回答