Я создаю приложение для заметок для себя с функциями фильтрации тегов, но у меня проблема при попытке захватить заметки с помощью тегов. Фильтр тегов должен использовать AND, а не IN, потому что это поможет лучше сузить то, что я ищу.MySQL LEFT JOIN проблема с тремя операторами WHERE
Мои таблицы настроены так:
+ notes note_id | note_title | note_uid
+ tags tag_id | tag_title
+ notes_tags nt_id | nt_note_id | nt_tag_id
Таблица notes_tags отслеживает теги всех нот.
Я не беспокоится о возвращении информации о тегах, так вот пример LEFT JOIN Я использую в настоящее время, чтобы получить только ноты с только 1 тега.
SELECT * FROM notes_tags LEFT JOIN заметки на note_id = nt_note_id WHERE note_uid IN (1) И nt_tag_id = 10
Этот запрос работает идеально, он захватывает все ноты с этим один тег , Тем не менее, у меня возникли проблемы "Pinpointing" мои заметки, используя запрос, как это:
SELECT * FROM notes_tags LEFT JOIN заметки на note_id = nt_note_id WHERE note_uid IN (1) И nt_tag_id = 10 И nt_tag_id = 11
Что я делаю неправильно с синтаксисом?
Вы пытаетесь получить заметки, которые находятся в обоих тегах 10 и 11, я принимаю это? Вы не можете сделать это только с И, взгляните на этот похожий вопрос со вчерашнего дня: http://stackoverflow.com/questions/2581067/mysql-experts-need-help-with-intersect/2581145#2581145 –