У меня есть таблица для комментариев ("event_comments") на различные события со следующими столбцами:Попадая столбцы с одинаковыми именами из разных таблиц Mysql
- POST_ID
- event_id
- имя пользователя
- комментарий
- дата
Я хочу, чтобы иметь возможность retrie ve эту информацию из базы данных, а также иметь возможность печатать имя пользователя, имя и фамилию; для этого я думал об использовании INNER JOIN, но он не работает по следующей причине: у меня есть 3 разных типа профиля (3 разных таблицы), «ученики», «опекуны», «учителя» и когда я пытаюсь использовать INNER ПРИСОЕДИНЯЙТЕ, используя «имя пользователя». Я получаю сообщение об ошибке, в котором указано, что поле «имя пользователя» из предложения неоднозначно.
SELECT event_comments.post_id, event_comments.event_id, event_comments.username, event_comments.comment, event_comments.date,
students.first_name, students.last_name, students.picture,
guardians.first_name, guardians.last_name, guardians.picture,
teachers.first_name, teachers.last_name, teachers.picture
FROM event_comments
INNER JOIN students
INNER JOIN guardians
INNER JOIN teachers
USING (username)
ORDER BY date DESC
LIMIT 20
Я попытался сделать это, и он сработал, но он показывает только 1 комментарий для пользователя; если пользователь имеет более чем 1 комментарий, то информация игнорируется:
SELECT event_comments.post_id, event_comments.event_id, event_comments.username, event_comments.comment, event_comments.date,
students.first_name, students.last_name, students.picture,
guardians.first_name, guardians.last_name, guardians.picture,
teachers.first_name, teachers.last_name, teachers.picture
FROM event_comments
INNER JOIN students
INNER JOIN guardians
INNER JOIN teachers
GROUP BY username
ORDER BY date DESC
LIMIT 20
ли кто-нибудь, как получить INNER JOIN и работать? есть ли лучший способ сделать то, что я хочу? Надеюсь, я хорошо себя объяснил.
Спасибо!
Большое спасибо за ваш ответ. Это то, что я получаю: MySQL возвращает пустой набор результатов (т. Е. Нулевые строки). Это так запутанно. Я начинаю думать, что, возможно, невозможно сделать то, что я хочу сделать. – Rookie
это почти то, что мне нужно. Большое спасибо. Я должен изучить ваш ответ, потому что он настолько сложный для новичка, как я. Я бы хотел опубликовать фотографию, чтобы вы могли видеть, что происходит ... Что происходит, так это то, что она показывает результаты дублирования, половина результатов хороша, а другая половина имеет «NULL» в следующих полях first_name , last_name и картинка ... Я пытаюсь понять, почему, но я не могу ... – Rookie
Да, было бы лучше, если бы я мог видеть ваш результирующий набор, чтобы я мог понять, что случилось. Проблема, вероятно, в ваших данных – TheProvost