У меня есть 3 таблицы, сообщение, тема и message_subject_rel
. Идея состоит в том, чтобы иметь сообщения, которые могут относиться ко многим темам, а затем выполнять межсубъектный поиск.
Допустим, у меня есть сообщение:
Id: 1, Message: This is a message
2 предмета:
Id:1, Subject: Math
Id:2, Subject: Science
И есть 2 message_subject_rel
записей, которые идут:
Id: 1, message_id: 1, subject_id: 1
Id: 2, message_id: 1, subject_id: 2
Если бы я хотел искать сообщения, связанные с математикой, я бы сделал простое объединение с 3 таблицами, и предложение where было бы subject = "Math"
Но я не знаю, как это сделать, - искать сообщения, связанные с математикой и наукой.
Если я делаю простое соединение, я получаю таблицы с чем-то вроде:
id message user_id created_at ip id message_id subject_id id subject
И если я сделаю where subject = "Math" and subject = "Science"
, я не получу никаких результатов, поскольку каждое сообщение будет иметь только 1 тему, связанную в каждой строке, но дублированные строки для сообщений с более чем 1 темой.
Итак, что вы рекомендуете?