如何编写MySQL命令



我正在尝试使用此链接中的数据库结构编写活动提要如何在社交网络中实现活动流但是我不确定如何编写MySQL命令来检索数据。具体来说,在活动表中,我让type标识它是哪种活动,source_id标识该类型活动的主键。我不知道如何使用连接语法从source_id

获得所有细节
        SELECT 
            activity.user_id, activity.type, activity.source_id, activity.time, users.username, act1.detail, act2.detail
        FROM activity JOIN users JOIN act1
        ON activity.user_id = users.uid
        AND activity.source_id = act1.sid
        WHERE 
            activity.userTo = :uid 

如果我使用上面的命令,我只能获得act1具有source_id的主键的行,而它可能是类型2(act2)。另外,我没有在命令中包含act2。如何编写命令以获得我想要的详细信息?或者我应该用完全不同的方法来做?谢谢!

对于act1act2的连接,我使用了LEFT JOIN,因为source_id可能是type1或type2,试试这个:

SELECT 
    activity.user_id, 
    activity.type, 
    activity.source_id, 
    activity.time, 
    users.username, 
    act1.detail, 
    act2.detail
FROM 
    activity 
JOIN users 
    ON activity.user_id = users.uid
LEFT JOIN act1
    ON activity.source_id = act1.sid
LEFT JOIN act2
    ON activity.source_id = act2.sid
WHERE 
    activity.userTo = :uid

相关内容

  • 没有找到相关文章

最新更新