2016-04-22 42 views
1

我遇到了问题。我现在正在制作一个私人消息系统,我需要获得用户和他的等级信息才能在屏幕上打印它。所以我做JOIN通过JOIN获取关于两个用户的信息

SELECT 
    private_messages.from as `from`, 
    private_messages.to  as `to`, 
    private_messages.theme as `theme`, 
    private_messages.date as `date`, 
    private_messages.message as `message`, 
    users.username   as `username`, 
    users.id     as `user_id`, 
    private_messages.id  as `pm_id`, 
    ranks.style    as `style`, 
    ranks.rank_name   as `rank_name` 
FROM `private_messages` 
LEFT JOIN `users` ON private_messages.from = users.id 
LEFT JOIN `ranks` ON users.rank   = ranks.id 
WHERE private_messages.id=? LIMIT 1 

但问题是,我得到“从”(谁sended消息)用户仅信息,并没有得到有关用户“到”(谁收到了消息)等级和其他的东西,我也需要他的信息,不知道该怎么做,任何人都可以帮助我? :)

+0

也许你可以使用类似'LEFT JOIN用户ON private_messages.from = users.id或private_messages.to = users.id' – Ahmad

+0

仍然只有一个用户:) – Danielius

回答

1

如果你想INFOR大约两个用户必须加入两个时间表用户一个user_from的一个user_to ...

这仅仅是用于获取信息的两个用户

SELECT 
    private_messages.from as `from`, 
    private_messages.to as `to`, 
    private_messages.theme as `theme`, 
    private_messages.date as `date`, 
    private_messages.message as `message`, 
    users.username as `username`, 
    users_to.username as `username_to` 
    users.id as `user_id`, 
    private_messages.id as `pm_id`, 
    ranks.style as `style`, 
    ranks.rank_name as `rank_name` 
    FROM `private_messages` 
    INNER JOIN `users` ON private_messages.from = users.id 
    INNER JOIN `users` as user_to ON private_messages.to = users.id 
    LEFT JOIN `ranks` ON users.rank = ranks.id 
    WHERE private_messages.id=? LIMIT 1 
建议
+0

仍然无法正常工作:(我试过类似的东西 – Danielius

+0

请显示错误的解释wath你的男人会“不工作”.. – scaisEdge

+0

任何错误,只是array === false当private_messages.id!= 1我不知道为什么。并仍然只得到1用户信息:/ – Danielius

相关问题