Я ищу лучшую практику, чтобы получить все News_IDs с тремя категориями.MySQL-много-для-многих Выберите - Лучшая практика
-- Table: news_categories +-------------+---------+ | category_id | news_id | +-------------+---------+ | 2 | 2 | | 2 | 3 | | 7 | 3 | | 14 | 2 | | 2 | 4 | | 12 | 3 | | 12 | 2 | +-------------+---------+
Это мой SQL до сих пор:
SELECT DISTINCT a.news_id FROM news_categories a, news_categories b, news_categories c WHERE a.news_id = b.news_id AND b.news_id = c.news_id AND a.category_id =2 AND b.category_id =7 AND c.category_id =12
Запрос возвращает news_id 3, который является то, что я хочу, но это путь? Как насчет производительности при включении еще большего числа категорий?
Ничего себе, это выглядит умным и приятным - и это работает просто отлично! Вы знаете о производительности? Это лучше, чем использование объединений? – chris
Я не гуру производительности, но я только что добавил что-то о производительности. Если он работает быстро, то, по крайней мере, у вас есть рабочая программа. Я бы подождал, пока вы не начнете добавлять больше категорий и не заметите, что ваши запросы работают медленнее, прежде чем тратить много времени, пытаясь максимизировать производительность на что-то, что может не быть проблемой. Я хотел бы видеть, имеет ли кто-либо еще информацию о производительности соединений по сравнению с этим. –