Я пытаюсь выбрать элементы, которые не имеют определенного значения в другой таблице, я смог достичь результата, который я хотел, используя подзапрос, однако это очень медленно, так что я интересно, если я мог бы сделать это по-другому ...Выберите элементы, которые не имеют определенного значения в другой таблице
SELECT
content.*,
(SELECT views
FROM content_views
WHERE content_views.content = content.record_num
) as views
FROM content
RIGHT JOIN watch_log ON content.record_num = watch_log.content
WHERE content.enabled = 1
AND 24 NOT IN
(SELECT niche
FROM content_niches
WHERE content_niches.content = content.record_num
)
ORDER BY content.encoded_date
DESC LIMIT 0,6
Я попытался с помощью LEFT OUTER JOIN, но не может получить тот же результат ...
SELECT
content.*,
(SELECT content_views.views
FROM content_views
WHERE content_views.content = content.record_num
) as views
FROM content
RIGHT JOIN watch_log ON content.record_num = watch_log.content
LEFT OUTER JOIN content_niches ON content.record_num = content_niches.content AND content_niches.niche = 24
WHERE content.enabled = 1
ORDER BY content.encoded_date
DESC LIMIT 0,6
Почему это ПРАВИЛЬНОЕ СОЕДИНЕНИЕ?!? – jarlh
Особенно, если есть условие WHERE content.enabled = 1 – Shadow