Как правильно написать mysql запрос?
SELECT u.id, u.name, u.age, h.hobby
FROM users u
LEFT JOIN hobbies h
ON u.id = h.user_id;
Пояснение "человеческим языком":
- выбрать id, name, age из таблицы u (алиас users), а также hobby из таблицы h (алиас hobbies)
- из таблицы users (к которой будем обращаться по алиасу u)
- и объединить с результатами из таблицы hobbies (к которой будем обращаться по алиасу h)
- а само объединение делаем по правилу где id из таблицы u (users) равно user_id из таблицы h (hobbies)
LEFT JOIN берет за основу таблицу слева (отсюда LEFT), то есть ту, которая первая - стоит в самом SELECT FROM. Далее он дозаполняет новую временную таблицу колонками и значениями, получаемые из второй таблицы (указана в LEFT JOIN).
На выходе получается:
Ипользуйте Left Join