Проблема с запросом MySQL

0

Как я могу добавить следующий пример кода 1 в пример 2, не нарушая мой запрос.

Пример 1

INNER JOIN users ON users_articles.user_id = users.user_id

Пример 2.

SELECT users.*
FROM users_articles
INNER JOIN articles_comments ON users_articles.id = articles_comments.article_id
INNER JOIN users ON articles_comments.user_id = users.user_id
WHERE users.active IS NULL
AND users.deletion = 0
ORDER BY articles_comments.date_created DESC
LIMIT 50
Теги:

1 ответ

0

Если я правильно вас понимаю, вы хотите дважды присоединиться к таблице users, один раз для комментариев и один раз для статей? В этом случае вам нужно добавить псевдоним таблицы. Я обычно использую одно- или двухбуквенные псевдонимы для краткости, даже если я не дублирую таблицы, но это не важно.

SELECT ...
FROM users_articles UA
INNER JOIN articles_comments AC ON UA.id = AC.article_id
INNER JOIN users UC ON AC.user_id = UC.user_id
  AND UC.active IS NULL
  AND UC.deletion = 0
INNER JOIN users UA ON UA.user_id = users.user_id
  AND UA.active IS NULL
  AND UA.deletion = 0
ORDER BY AC.date_created DESC
LIMIT 50

BTW, Не используйте SELECT *, почти всегда лучше перечислять именно то, что вы хотите.

Отказ от ответственности. Возможно, я неправильно понял, что вы пытаетесь сделать; размещение небольшого контекста для вашего кода обычно является хорошей идеей. В этом случае имена таблиц немного подбросили меня (если это так, я думаю, что я только что ушел с users, articles и comments).

  • 0
    Я не хочу отображать статьи и комментарии, где users.deletion = 1
  • 0
    Я все еще могу заставить его работать :(
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню