sql多表多条件嵌套查询,敢于挑战的来
现在有两个表,一个会员表(phome_enewsmember),一个产品表(phome_ecms_memberpro)。现在要求:1,查询会员表,要求会员组字段>1(大于...
现在有两个表,一个会员表(phome_enewsmember),一个产品表(phome_ecms_memberpro)。现在要求:
1,查询会员表,要求会员组字段>1(大于1为VIP会员),checked=1(等于1为审核会员);
2,查询会员在产品表里发布的数据大于4条(包括4条);
注意:我主要查询的是产品表,只显示每个会员发布的前4个产品,注意每个会员只显示4条。
我需要把这些条件合并为一个sql语句,请高手来帮忙一下。谢谢。
以下是我用的循环嵌套来查询的,但有两个bug
一,当该会员为VIP会员,并且没有发布产品,或者发存的产品不大于4条,那么我的分页就出问题了,预设为第页显示16条(4个会员
*4个产品),但当其中一个会员产品没有4个时间,该页就不能显示到16条了。
二,“$pagerow=$empire->num("select * from phome_ecms_memberpro where checked=1");”这个是查询总产品的条数,但是有些产
品可能不是会员发的,也有可能不是VIP会员发的,也有可能是该员发布好产品后被删除了,那么得到的总产品数就不对了。
有点挑战吧。希望敢于挑战的HI我
//我的代码
<?php
$page=$_GET['page'];
if(!$page){
$page=0;
}
$evepage=4;//每页显示多少条
$statpage=$page*$evepage;
$sql="select * from phome_enewsmember where groupid>4 and checked=1 order by userid desc limit
$statpage,$evepage";
// echo $sql;
$result=$empire->query($sql);
while($rs=$empire->fetch($result)){
$userid=$rs['userid'];
$sqlp="select * from phome_ecms_memberpro where userid=$userid and checked=1 order by newstime,id desc
limit 4";
$resultp=$empire->query($sqlp);
while($rsp=$empire->fetch($resultp)){
$id=$rsp['id'];
$userid=$rsp['userid'];
$title=$rsp['title'];
$titlepic=$rsp['titlepic'];
?>
<li><span><a href="[!--news.url--]e/space/product_show.php?id=<?=$id?>&userid=<?=$userid?>&mid=11"
target="_blank"><img src="<?=$titlepic?>"></a></span><br>
<a href="[!--news.url--]e/space/product_show.php?id=<?=$id?>&userid=<?=$userid?>&mid=11" target="_blank"><?
=$title?></a></li>
<?php
}
}
?>
</ul>
<?php
$pagerow=$empire->num("select * from phome_ecms_memberpro where checked=1");
?> 展开
1,查询会员表,要求会员组字段>1(大于1为VIP会员),checked=1(等于1为审核会员);
2,查询会员在产品表里发布的数据大于4条(包括4条);
注意:我主要查询的是产品表,只显示每个会员发布的前4个产品,注意每个会员只显示4条。
我需要把这些条件合并为一个sql语句,请高手来帮忙一下。谢谢。
以下是我用的循环嵌套来查询的,但有两个bug
一,当该会员为VIP会员,并且没有发布产品,或者发存的产品不大于4条,那么我的分页就出问题了,预设为第页显示16条(4个会员
*4个产品),但当其中一个会员产品没有4个时间,该页就不能显示到16条了。
二,“$pagerow=$empire->num("select * from phome_ecms_memberpro where checked=1");”这个是查询总产品的条数,但是有些产
品可能不是会员发的,也有可能不是VIP会员发的,也有可能是该员发布好产品后被删除了,那么得到的总产品数就不对了。
有点挑战吧。希望敢于挑战的HI我
//我的代码
<?php
$page=$_GET['page'];
if(!$page){
$page=0;
}
$evepage=4;//每页显示多少条
$statpage=$page*$evepage;
$sql="select * from phome_enewsmember where groupid>4 and checked=1 order by userid desc limit
$statpage,$evepage";
// echo $sql;
$result=$empire->query($sql);
while($rs=$empire->fetch($result)){
$userid=$rs['userid'];
$sqlp="select * from phome_ecms_memberpro where userid=$userid and checked=1 order by newstime,id desc
limit 4";
$resultp=$empire->query($sqlp);
while($rsp=$empire->fetch($resultp)){
$id=$rsp['id'];
$userid=$rsp['userid'];
$title=$rsp['title'];
$titlepic=$rsp['titlepic'];
?>
<li><span><a href="[!--news.url--]e/space/product_show.php?id=<?=$id?>&userid=<?=$userid?>&mid=11"
target="_blank"><img src="<?=$titlepic?>"></a></span><br>
<a href="[!--news.url--]e/space/product_show.php?id=<?=$id?>&userid=<?=$userid?>&mid=11" target="_blank"><?
=$title?></a></li>
<?php
}
}
?>
</ul>
<?php
$pagerow=$empire->num("select * from phome_ecms_memberpro where checked=1");
?> 展开
4个回答
展开全部
看你的说的信息中没有关于会员表和产品表的关联条件信息。
而且查询会员发布的情报的这个会员的条件是checked>=1吗?
发布人可能是会员。可能不是?有啥字段能确定到底是不是吗?
你最好给出表的关键字段列出来。
而且查询会员发布的情报的这个会员的条件是checked>=1吗?
发布人可能是会员。可能不是?有啥字段能确定到底是不是吗?
你最好给出表的关键字段列出来。
追问
关联条件就是每个表都有发布者的ID啊,产品表有个ismember=1就是会员发布的否则不是。
追答
你的信息还是有点缺损,我设定了一下。你可以参照着写SQL:
Select A.RowNumber,A.商品编号,A.商品名,A.发布者的会员ID,A.发布者的会员名 From
(
SELECT
ROW_NUMBER() OVER (PARTITION BY AA.发布者的ID ORDER BY AA.发布者的ID) AS RowNumber,AA.发布者的会员ID,AA.发布者的会员名,BB.商品编号,BB.商品名
FROM phome_enewsmember AA,phome_ecms_memberpro BB
Where AA.发布者的ID = BB.发布者的ID AND BB.checked = 1
) A
Where A.RowNumber < 5
Order By A.RowNumber
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询