Мне нужно иметь 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%';
Edit:
Вот пример базы данных;
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
Поэтому я хочу найти «snoop», чтобы вернуть только художника «Snoop Dogg». Но потом поиск вроде «Linkin», чтобы вернуть исполнителя и песню.
Настольные песни не имеют 'artistID'? – safarov
@safarov У них нет, но я мог бы добавить это. – Flipper
Если нет, то как вы определяете, какая песня принадлежит художнику – safarov