我已经看过S.O的可能解决方案,我的查询仍然无法正常工作。MySQL JOIN错误:每个派生表都必须有自己的别名
这里的查询:
SELECT `messages`.`from_id`,
`messages`.`to_id`,
`messages`.`message`
FROM `messages`
JOIN
(
SELECT `users`.`profile_pic`
FROM `users` AS `from_pic`
WHERE `users`.`id` = `from_id`
)
ON `users`.`id` = `messages`.`from_id`
JOIN
(
SELECT `users`.`profile_pic`
FROM `users` AS `to_pic`
WHERE `users`.`id` = `to_id`
)
ON `users`.`id` = `messages`.`to_id`
WHERE `messages`.`from_id` = 23
AND `messages`.`to_id` = 24
ORDER BY `date_sent` DESC;
表users
id | profile_pic | name
表messages
message_id | from_id | to_id | message
我明白了。我之前试过这个,但是我得到这个错误,所以我不知道什么是错的:'#1054 - 未知列'users.profile_pic'in'字段列表' ' – nTuply
@nTuply看到我的编辑,你已经在'users'表的子查询中提供了别名,您需要在那里引用该别名。 – ollie
'#1054 - 'where子句'中的未知列'from_id'错误很疯狂。你认为我应该发布我的餐桌设计吗? – nTuply