Удалить строку из mysql запроса выбора - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть две таблицы

tbl_comment
commnet_id|commnt
1         |test1
2         |test2
3         |test3   

tbl_rejection
rej_id|done_by|comment_id|
1     | admin |1

Я перечисляю все свои комментарии, и мне нужно исключить комментарий отклонения (идентификатор комментария: 1) из запроса на выборку

select * from tbl_comment
join tbl_rejection on tbl_rejection.comment_id = tbl_comment.comment_id
where tbl_rejection.rej_id is null

Может кто-нибудь помочь

Ответы [ 2 ]

2 голосов
/ 07 апреля 2020

Объединение будет возвращать только записи со значениями в обеих таблицах. Вам нужно левое соединение, чтобы вернуть все записи в первой таблице и ноль во второй таблице, где не найдено ни одной соответствующей записи.

select * from tbl_comment
left join tbl_rejection on tbl_rejection.comment_id = tbl_comment.comment_id
where tbl_rejection.rej_id is null

С уважением,
Bjarni

1 голос
/ 07 апреля 2020

not exists ваш путь:

select * from tbl_comment
where not exists (
    select 1 from tbl_rejection
    where tbl_rejection.comment_id = tbl_comment.comment_id);

Это может быть более эффективным, чем объединение таблиц. Просто попробуйте оба решения и сравните.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...