С учетом следующих таблиц:
labels tags_labels
|id |name | |url |labelid |
|-----|-------| |/a/b |1 |
|1 |punk | |/a/c |2 |
|2 |ska | |/a/b |3 |
|3 |stuff | |/a/z |4 |
artists tags
|id |name | |url |artistid |albumid |
|----|--------| |------|-----------|---------|
|1 |Foobar | |/a/b |1 |2637 |
|2 |Barfoo | |/a/z |2 |23 |
|3 |Spongebob| |/a/c |1 |32 |
Я хотел бы получить список URL, которые соответствуют паре условий (которые могут быть введены пользователем в сценарий, который использует эти операторы).
Например, пользователь может захотеть перечислить все URL, которые имеют метки «(1 ИЛИ 2) И 3», но только если они принадлежат исполнителям «Губка Боб ИЛИ Что угодно».
Возможно ли сделать это в одном выражении, используя внутренние / Гарри Поттер / Кросс / Self JOINs?
Или мне придется распределить запрос по нескольким операторам и буферизировать результаты внутри моего скрипта?
Edit:
И если это возможно, как бы выглядело это утверждение? : Р