Ошибка MySql при попытке объединить две таблицы - PullRequest
0 голосов
/ 11 января 2019

Привет, я получаю сообщение об ошибке ниже, когда я пытаюсь объединить две таблицы, Post и User

ошибка: посторонний ввод 'post' ожидающий {, ';', K_ALTER, K_ANALYZE,>> K_ATTACH, K_BEGIN, K_COMMIT, K_CREATE, K_DELETE, K_DETACH, K_DROP, K_END, K_EXPLAIN, K_INSERT, K_PRAGMA, K_REINDEX, K_RELEASE, K_REPLACE, K_ROLLBACK, K_SAVEPOINT, K_SELECT, K_UPDATE, K_VACUUM, K_VALUES, K_WITH, UNEXPECTED_CHAR}

У меня есть таблица, в которой есть количество сообщений, состоящее из заголовка, тела и с помощью которого пользователь создал это сообщение,

Таблица пользователей - это список сведений о пользователях, таких как имена и адреса.

Я пытаюсь создать результирующий набор, который выводит подробности сообщения, такие как заголовок и тело, плюс имя пользователя, прикрепленное к нему (таблица сообщений содержит только ссылку на идентификатор пользователя)

Это мой запрос, который я пытался

SELECT post.title AS title, post.body AS body, post.username AS username FROM post, user, WHERE user.id = post.userId

Мои навыки sql немного устарели, но я считаю, что приведенный выше запрос варианта использования может быть выполнен?

Ответы [ 3 ]

0 голосов
/ 11 января 2019

Звучит так, будто вы хотите присоединиться к таблице. Я предполагаю, что когда вы пишете post.username, вы имеете в виду user.username, поскольку позже вы говорите, что таблица записей имеет только ссылку на userId.

Нечто подобное может быть тем, что вы хотите:

SELECT post.title, post.body, user.username
FROM post
INNER JOIN user
ON post.userId=user.id;
0 голосов
/ 11 января 2019

Ваш запрос выглядит хорошо, но удалите запятую перед предложением where:

от

SELECT post.title AS title, post.body AS body, post.username AS username FROM post, user, WHERE user.id = post.userId

до

SELECT post.title AS title, post.body AS body, post.username AS username FROM post, user WHERE user.id = post.userId
0 голосов
/ 11 января 2019

вы должны попробовать что-то вроде этого:

SELECT p.title AS title,p.body AS body,p.username AS username 
FROM post p 
JOIN user u ON u.id = p.userId
WHERE u.id = 'to your user id'
...