如何连接2个具有2个where子句的表

时间:2013-04-25 03:34:39

标签: sql join

我有一个工作代码,第一个查询将选择用户的所有评论,另一个将选择该评论的每个主题,并只选择用户评论的主题,但他不是创造者。它就像一个订阅的主题页面。问题是我不能在单行查询中进行,我需要它进行分页。

我的原始代码是:

$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

2 个答案:

答案 0 :(得分: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 

答案 1 :(得分: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