这个不需要左联。SELECT r.title,
          rt.text,
          u.username
     FROM reply as r,
          topic as t,
          reply_text as rt,
          user as u
      
    WHERE t.ID = '$_GET[TopicID]'
       and r.TopicID = t.ID
       and rt.ReplyID = r.ID and  r.UID = u.ID;

解决方案 »

  1.   

    to lvlfforever(那一年) :“where r.UID = u.ID”的话会有个问题,r.UID可以为0,但u.ID不可以,这样r.UID为0的数据会被无视
      

  2.   


    ...
    WHERE t.ID = '$_GET[TopicID]'
           and r.TopicID = t.ID
           and rt.ReplyID = r.ID and  (r.UID = u.ID or r.UID=0);
      

  3.   

    (r.UID = u.ID or r.UID=0)经测试,这样只能选取r.UID=0的数据
      

  4.   

    这东西用自己写吗,不让SQL去自动生成.
    打开表,选择关系图就可以了,要什么连接有什么连接,全部自动生成
      

  5.   

    MySQL有这种东东?都一次听说
    就算有,那是别人的,自己写出来才是自己的
      

  6.   

    (r.UID = u.ID or r.UID=0)经测试,这样只能选取r.UID=0的数据
    ------------------------------------
    只能说明前边的条件: t.ID = '$_GET[TopicID]'
           and r.TopicID = t.ID
           and rt.ReplyID = r.ID
    出来的只有r.UID=0的记录。你可以将(r.UID = u.ID or r.UID=0) 这个条件去掉试试看。
      

  7.   

    SELECT r.title,rt.text,u.username
    FROM reply as r
    INNER JOIN reply_text as rt ON r.ID=rt.ReplyID
    LEFT JOIN user as u ON r.UID=u.ID OR r.UID=0
    WHERE r.TopicID = '$_GET[TopicID]'
      

  8.   

    reply_text.ReplyID 与 reply.ID 关联。
    -----------
     你的reply里没有ID字段啊
      

  9.   

    SELECT r.title,rt.text,u.username
    FROM reply as r
    INNER JOIN reply_text as rt ON r.ID=rt.ReplyID
    LEFT JOIN user as u ON r.UID=u.ID 
    WHERE r.TopicID = '$_GET[TopicID]'
    就可以了