Выборка записей из базы по списку меток, заданных в другой таблице?

SELECT r.*
    FROM Records r
    INNER JOIN Record_Tag rt ON rt.record_id = r.id
    INNER JOIN Tag t ON t.id = rt.tag_id
    WHERE t.name IN ('tag1','tag2','tag3,...,'tagN')


Выберет все записи (не уникальные) по тегам, для того чтобы выьрать уникальные нужно добавить DISTINCT, или группировку, смотря как вы собираетесь использовать эти данные.
Ты хочешь чтобы в итоговой таблице каждый тег был отдельным полем? Или отдельной записью?