2013-04-25 61 views
0

我有一个工作代码,其中第一个查询将选择用户的所有评论,另一个将选择该评论的每个主题并仅选择用户对其评论的主题但他不是创造者。它就像一个订阅的主题页面。问题是我无法在单行查询中完成,而我需要它进行分页。如何加入2个表,其中有2个where子句

我原来的代码是这样的:

$qry="SELECT * FROM tbl_comment WHERE user_id='$selected_user' GROUP BY topic_id"; 
    $res=mysql_query($qry); 
     if(mysql_num_rows($res)==0) 
      { 
       echo "<tr><td colspan=2><br>No Topic(s) Subscribed.</td></tr>"; 
      } 
     else 
      { 
       while($row=mysql_fetch_array($res)) 
        { 
         $subcid = $row['topic_id']; 
         $qry2="SELECT * FROM tbl_topic WHERE topic_id='$subcid' AND user_id!='$selected_user'"; 
         $res2=mysql_query($qry2); 
         while($row2=mysql_fetch_array($res2)) 
          { 
           //echo output 
          } 
         } 

       } 

这些都是我的两个表

tbl_topic 
---------- 
topic_id 
topic_title 
user_id 




tbl_comment 
---------- 
comment_id 
comment_message 
user_id 
topic_id 

回答

1

在你的问题中提到...选择只有主题的用户不发表评论....

Select Tp.topic_Id , Tc.User_Id 
From tbl_topic Tp 
Inner Join tbl_comment Tc 
    On Tp.topic_Id = Tc.topic_Id 
    And Tp.User_Id != Tc.User_Id 
+0

哎呀,我的问题是错误的,对不起,我意思是只选择用户评论的主题,但他不是创建者。我编辑了我的问题。 – 2013-04-25 05:18:03

+0

我认为交换条件会起作用..plz检查 – 2013-04-25 05:22:53

+0

感谢您的帮助。它现在正在工作 – 2013-04-25 05:25:39

0

你的意思是子查询?试试这个..

select * from tbl_comment where user_id in(
    select user_id from tbl_topic where topic_id='$subcid' and user_id!='$selected_user' 
) 
group by topic_id