按外键搜索

时间:2013-11-11 13:25:31

标签: php sql

我正在开发一个允许用户搜索音乐,艺术家,专辑和混音带的应用程序。 DB有四个表:音乐,艺术家,混音带,专辑。 3个表;混音带,音乐和专辑与艺术家在名为artist_id的列中使用外键相关。 通过使用如下查询来获取三个表中每个表的搜索结果非常容易:

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

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

2 个答案:

答案 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 ....