Выборка из двух таблиц (MySQLi SELECT)

Совсем недавно делал систему комментариев для фотографий, на одном своем проекте. Встала задача делать выборку сразу из двух таблиц. Сначала из одной таблице получить информацию о комменте, затем из другой получить информацию о авторе коммента и всю полученную информацию из двух таблиц соединить в одном блоке. И так вот две таблицы:
comments
  • id_comment (идентификатор коммента)
  • subject (комментируемый предмет)
  • comments (текст комментария)
  • data_comment (дата написания коммента)
  • author (идентификатор автора коммента)

user
  • id_user (идентификатор пользователя)
  • login (логин, имя пользователя)
  • mail (электронная почта пользователя)
  • password (пароль пользователя для входа в систему)
  • date_reg (дата регистрации пользователя)

Выборка из одой таблицы делается так:
$sql = "SELECT * 
    FROM comments
    WHERE subject = '$photo'    
    ORDER BY id_comment DESC";
$query = mysqli_query($connect, $sql) or die(mysqli_error());

Таким образом мы можем вывести все комментарии к определенной фотографии, но о авторе комментов мы ни чего не будем знать кроме его идентификаторе (id). Я хочу видеть имя того, кто написал тот или иной коммент, конечно в таблице comments, в поле author можно вставлять логин пользователя вместо его идентификатора, но а если пользователь сменит свое имя? Что будет тогда? В комментариях будет отображаться неверная информация о авторе.
В общем делаем, как я писал выше, сначала получаем информацию о комменте, затем о его авторе:
$sql = "SELECT * 
    FROM comments a, user b
    WHERE a.subject = '$photo'
    AND b.id_user = a.author    
    ORDER BY a.id_comment DESC";
$query = mysqli_query($connect, $sql) or die(mysqli_error());

Рассказываю, что я сделал: первая строчка $sql = "SELECT * (выбрать всё) осталась без изменений, последняя строчка тоже не изменилась, а вот все остальные были изменены.
Вторая строчка FROM comments a, user b - (из каких таблиц делать выборку) идет перечисление таблиц с присвоенными им буквами a и b. Таблицы comments принадлежит буква a, таблице user буква b. Присваивание букв делается для команды из какой таблицы, что выбирать.
В третей строке WHERE a.subject = '$photo' запрос говорит, что выборку надо делать в таблице, которой присвоена буква a (то есть comments) по значению переменной $photo.
Далее, четвертая строка AND b.id_user = a.author запрос говорит - продолжать выборку, но уже в таблице с буквой b (то есть user). Тут мы получаем информацию о пользователе с одинаковым идентификатором автора коммента из таблицы comments и пользователя из таблицы user.
Пятая строка запроса ORDER BY a.id_comment DESC"; - командует о сортировке комментариев в обратном порядке по содержимому поля id_comment, из таблицы с буквой a.

Прошу заметить, что у меня в таблицах нет одинаковых названий полей, все названия уникальны. То есть, я даже не назвал поля идентификатора коммента или пользователя не просто id, я дал им названия id_comment и id_user, что бы избежать ошибок. В общем одинаковых названий не должно быть, иначе ошибок не избежать.
Теги: MySQLi
Автор: