SELECT a.id_article as id_article, a.title as title, a.pubdate as pubdate
FROM articles as a, articles_attachs as aa INNER JOIN ON (a.id_article=aa.id_article) WHERE (aa.id_attach=1 AND aa.id IN ('119')) OR (aa.id_attach=2 AND aa.id IN ('10'))
Не могу написать запрос на SQL к MySQL
articles_attachs - id_article (ид статьи), id (ид категории или топика(темы статьи)), id_attach (1 или 2, определяет чей ID соответсвенно)
Пишу запрос
Код:
SELECT a.id_article as id_article, a.title as title, a.pubdate as pubdate
FROM articles as a, articles_attachs as aa
WHERE a.id_article=aa.id_article AND (aa.id_attach=1 AND aa.id IN ('119')) AND (aa.id_attach=2 AND a.id_article=aa.id_article AND aa.id IN ('10')) GROUP BY a.id_article
FROM articles as a, articles_attachs as aa
WHERE a.id_article=aa.id_article AND (aa.id_attach=1 AND aa.id IN ('119')) AND (aa.id_attach=2 AND a.id_article=aa.id_article AND aa.id IN ('10')) GROUP BY a.id_article
Хочу выбрать статьи из определённой категории с определённой темой (топиком). Ошибку запрос не возращает, но ничего не даёт... Если вместо AND пишу OR тогда он показывает все статьи по категориям не учитываю тема и наоборот...
Нид хелп :mad:
Забыл сказать... кажой новости может быть привязано несколько категорий и тем
Цитата: Boom.Olezka
Ошибку запрос не возращает, но ничего не даёт...
Всё верно. Сравнение с константой в where производится для каждой строки, соответственно твоё "высказывание" означает: "когда aa.id_attach=1 и aa.id_attach=2". Логика ясна? Хороший оптимизатор вообще не будет делать выборку, всегда выдавая пустой курсор.
Сравнения, работа которых предполагается для разных строк, нужно записать в скобках через OR. Для AND скобки излишни.
Убрал скобки из запроса, но всё равно он отказывается выдавать результат... Как ещё можно сформировать запрос?
Код: