Sql 如何联接具有2个where子句的2个表
我有一个工作代码,第一个查询将选择用户的所有评论,另一个查询将选择该评论的每个主题,并仅选择用户评论的主题,但他不是创建者。它就像一个订阅的主题页面。问题是我不能在单行查询中创建它,我需要它来分页 我的原始代码是:Sql 如何联接具有2个where子句的2个表,sql,join,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)
$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
}
}
}
你是说子查询吗?试试这个
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
正如你在问题中提到的。。。仅选择用户不评论的主题
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
哦,我的问题错了,对不起,我的意思是只选择用户评论的主题,但他不是创建者。我编辑了我的问题。
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