У меня есть некоторые MySQL таблицы, как показано ниже,выберите записи запроса, если несколько тип соответствует
1) видео
id name
1 test1
2 test2
2) теги
id name
1 theme1=test1
2 theme1=test2
3 theme2=test1
4 theme2=test2
5 age=senior
6 age=children
3) tags_to_items
vid tagid
1 1
1 5
Здесь в таблице tags_to_item
вы видите videos.id=1
имеет 2 метки 1)theme1=test1
И 2)age=senior
. Это означает, что video.id=1
имеет 2 тега. Теперь вот один конфликт, что я делаю сейчас, я ищу только тему. Это означает, что если я ищу, где theme1 = theme1, тогда нужно также искать тему1 в теме2 и наоборот. как этот
WHERE tagid=1 OR tagid=2
Это функционирует собственно, но теперь я хочу, чтобы искать, если видео есть несколько тег и его состояние, как этот
WHERE tagid=5 AND tagid IN (1,2)
Она должна возвращать video.id=1
Таким образом, вероятно, это нужно для поиска, где видео 1 содержит тег тега age=senior
И theme1=theme1
ИЛИ theme2=theme1
. Но его не работает, у кого-нибудь есть идея, как я могу это сделать?
Вы уверены, что присоединились к знаку viedeo, равному теги? Кроме того, я не думаю, что вам нужно сделать 2 внутренних соединения. И ваш «теги» отличается от вашего примера. Пожалуйста, еще раз взгляните на первый блок кода моего ответа. – bish
Данные @bish - это просто образец, у меня есть большая база данных со многими тегами и многими фильтрами, поэтому объединения динамически соответствуют поиску тегов. это будет 2 или 3 или много. – hemsbhardiya