$db->SetQuery("SELECT G.posts,G.replies,G.jointime,G.isjoin,G.uname,M.face,M.uname,M.userid,M.mid,M.scores,Z.username,Z.uid FROM Table AS G LEFT JOIN Table1 AS M LEFT JOIN Table2 AS Z ON G.uname=M.uname=Z.username WHERE G.gid='$id' AND G.isjoin=1 ORDER BY M.scores DESC LIMIT 0,5");
这样写的三表查询,肯定是不对的,但是应该怎么写呢?

解决方案 »

  1.   

    G.posts,G.replies,G.jointime,G.isjoin,G.uname,M.face,M.uname,M.userid,M.mid,M.scores,Z.username,Z.uid
    查询这些出来就是结果了!其中G.uname=M.uname=Z.username 其实就是通过用户名,查出他的信息
      

  2.   

    SELECT G.posts,G.replies,G.jointime,G.isjoin,G.uname,M.face,M.uname,M.userid,M.mid,M.scores,Z.username,Z.uid FROM Table AS G LEFT JOIN Table1 AS M ON G.uname=M.uname
    LEFT JOIN Table2 AS Z on M.uname=Z.username 
     WHERE G.gid='$id' AND G.isjoin=1 ORDER BY M.scores DESC LIMIT 0,5
      

  3.   

    $db->SetQuery("SELECT G.posts,G.replies,G.jointime,G.isjoin,G.uname,M.face,M.uname,M.userid,M.mid,M.scores,Z.username,Z.uid FROM Table AS G LEFT JOIN Table1 AS M on ON G.uname=M.uname LEFT JOIN Table2 AS Z ON G.uname=Z.username WHERE G.gid='$id' AND G.isjoin=1 ORDER BY M.scores DESC LIMIT 0,5");格式应该是 from A left join B on a.id=b.id 
      

  4.   

    Mysql 你还可以用A JOIN  B USING$db->SetQuery("SELECT G.posts,G.replies,G.jointime,G.isjoin,G.uname,M.face,M.uname,M.userid,M.mid,M.scores,Z.username,Z.uid FROM Table AS G LEFT JOIN Table1 AS M using(uname) LEFT JOIN Table2 AS Z using(uname) WHERE G.gid='$id' AND G.isjoin=1 ORDER BY M.scores DESC LIMIT 0,5");
      

  5.   


    SELECT G.posts,
           G.replies,
           G.jointime,
           G.isjoin,
           G.uname,
           M.face,
           M.uname,
           M.userid,
           M.mid,
           M.scores,
           Z.username,
           Z.uid
      FROM Table AS G
      LEFT JOIN Table1 AS M
      LEFT JOIN Table2 AS Z ON Z.username = M.uname
      ON M.uname = G.uname
     WHERE G.gid = '$id'
       AND G.isjoin = 1
     ORDER BY M.scores DESC LIMIT 0, 5