Есть таблица messages с полями:
CREATE TABLE messages
(
id INT,
name VARCHAR(255) NOT NULL,
text VARCHAR(255),
created_at Date
);
и связанная таблица:
CREATE TABLE comments
(
id INT,
message_id INT NOT NULL
text VARCHAR(255),
author_id INT NOT NULL
created_at Date
);
Таблицы связаны один-ко-многим ON comments.message_id = messages.id
Нужно вытащить все записи из таблицы messages, которые не комментировал автор с определенным id (например 100) то есть comments. author_id != 100
если сделать так:
SELECT DISTINCT * FROM messages LEFT JOIN comments ON comments.message_id = messages.id WHERE comments. author_id != 100
вытащит записи messages у которых в связанной таблице author_id = 100 так как есть другие записи у которых author_id != 100