我需要能够使用简单搜索来搜索我的数据库的SQL查询。这里是我现在的表格:搜索多个表(SQL)
Table artists
--------------
id
name
Table albums
-------------
id
artistID
name
Table songs
------------
id
albumID
name
我该如何去做这件事?以下是我尝试过的一些SQL查询,但我的问题是它返回了很多数据。例如,如果我搜索像Snoop Dogg这样的艺术家,那么即使他们不包含他的名字,它也会为每张专辑和歌曲返回一行。
SELECT * FROM artist,album,songs WHERE artist.name LIKE '%snoop%' OR albums.name LIKE '%snoop%' OR songs.name LIKE '%snoop%';
编辑:
这里是一个示例数据库;
artists
-----------
1 | Snoop Dogg
2 | Linkin Park
albums
--------
1 | artist=1 | Boom
2 | artist=2 | ThisIsIt
songs
--------
1 | album=1 | First
2 | album=2 | Second Linkin
3 | album=2 | Third
4 | album=1 | Fourth
所以我想为“窥探”的搜索只返回艺术家“史努比狗狗”。但随后像“Linkin”这样的搜索将返回艺术家和歌曲。
表歌没有'artistID'? – safarov 2012-03-21 23:51:35
@safarov他们没有,但我可以添加它。 – Flipper 2012-03-21 23:53:06
如果没有,那么你如何检测哪首歌属于艺术家 – safarov 2012-03-21 23:54:02