У меня есть две таблицы:
таблица "песен"
|id|title |
|1 |song 1|
|2 |song 2|
|3 |song 3|
таблица "тегов"
|id|song_id|type |tag |
|1 |1 |season|christmas|
|2 |1 |time |morning |
|3 |2 |season|summer |
|4 |2 |time |morning |
|5 |2 |time |night |
|6 |3 |time |morning |
Например, у меня есть три тега типа "сезон ":" рождество "," пасха "," валентинка ".У меня также есть теги типа «дневное время»: «утро», «день», «вечер» и «ночь».Как я могу получить все песни, у которых есть тег типа «сезон» и тег «рождество» или вообще нет типа «сезон»?Но могут быть и другие типы тегов.
Я написал это:
SELECT s.title,t.* FROM songs AS s LEFT JOIN tags AS t ON s.id=t.song_id WHERE (t.type='season' AND t.tag='christmas') OR type ... ?
, но я не знаю, как создать остальную часть этого запроса, чтобы тип «сезон» был пустым, но могут быть и другие типы.
Пример: запрос 1: искать песни с тегами сезона = рождество и время = утро.запрос 2: песни без тега сезона и только время = ночь
Надеюсь, вы понимаете, чего я пытаюсь достичь.