Запрос MySQL: отображать статьи и их комментарии, в которых поле «delete» пользователя не равно «1», а «active» равно «NULL»

0

Я пытаюсь просто отобразить статьи и их комментарии, где поле deletion пользователей не равно 1 а active NULL равно NULL, но по какой-то причине в моем запросе отображаются комментарии из статей, где поле deletion равно 1. Как это исправить?

MySQL таблицы

CREATE TABLE users (
    user_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    username VARCHAR(255) NULL,
    password CHAR(128) NOT NULL,
    active CHAR(32),
    deletion TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
    PRIMARY KEY (user_id),
    UNIQUE KEY (username)
);

CREATE TABLE articles_comments (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    parent_comment_id INT UNSIGNED NOT NULL,
    user_id INT UNSIGNED NOT NULL,
    article_id INT UNSIGNED NOT NULL,
    comment TEXT NOT NULL,
    date_created DATETIME NOT NULL,
    PRIMARY KEY (id),
    KEY user_id (user_id),
    KEY article_id (article_id)
);

CREATE TABLE users_articles (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    user_id INT UNSIGNED NOT NULL,
    title TEXT NOT NULL,
    summary TEXT DEFAULT NULL,
    content LONGTEXT NOT NULL,
    PRIMARY KEY (id)
);

ввод таблиц article_comments

comment_id  parent_comment_id   user_id     article_id  comment
1           0                   1           1           -
2           0                   2           1           -
3           0                   2           2           -
4           0                   1           2           -
5           0                   2           3           -
6           0                   2           4           -
7           1                   2           1           -
8           2                   2           1           -
9           0                   3           1           -

ввод таблиц users_articles

id  user_id     title   summary     content
1   3           -       -           -
2   4           -       -           -
3   4           -       -           -
4   4           -       -           -

ввод пользовательских таблиц

user_id     username    password    deletion    active
1           -           -           0           NULL
2           -           -           0           NULL
3           -           -           1           NULL
4           -           -           0           NULL

Мой текущий вывод на дисплей

user_id     comment_id      article_id 
1           1               1
2           2               1
2           3               2
1           4               2
2           5               3
2           6               4
2           7               1
2           8               1

Мой желаемый выход

user_id     comment_id      article_id 
2           3               2
1           4               2
2           5               3
2           6               4

Мой текущий код MySQL.

SELECT *
  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
  • 0
    Текущий вывод на экран соответствует описанию желаемых результатов. Единственный пользователь с deletion 1 - это пользователь 3, которого нет в списке результатов. Вы хотите, чтобы статьи и их комментарии не содержали комментариев к каждой статье от удаленного пользователя, хотя другие комментарии (и сама статья) были не от удаленных пользователей? Например, если пользователь 1 был удален, то любой комментарий к статье 2 больше не будет включен в вывод.
Теги:

1 ответ

0

попробуйте это

EDIT:

   SELECT * FROM users_articles,articles_comments,users where users_articles.id = articles_comments.article_id and articles_comments.user_id = users.user_id and users_articles.user_id=users.user_id and userusers.active IS NULL AND users.deletion = 0;

Примечание. Не рекомендуется выбирать все (*) с объединенными таблицами.

  • 0
    это помещает комментарии с неправильными статьями :(
  • 0
    попробуйте обновить запрос
Показать ещё 1 комментарий

Ещё вопросы

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