只有当行数大于零时才返回mysql查询

时间:2012-01-22 10:10:40

标签: mysql count return rows

如何将此查询更改为仅返回返回0行以上的行?

我需要结合这两个查询。我需要返回第二个查询返回至少1行的行。

    SELECT albumData.* 
       FROM albumData 
      WHERE userID='$id' 
        AND state='0' 
   ORDER BY date DESC


  SELECT photos.photo 
    FROM albums, photos 
   WHERE albums.userID = '$id' 
     AND albums.photoID = photos.id 
     AND albums.albumID = $albumID 
ORDER BY photos.id DESC LIMIT 6;

编辑从评论中添加有用信息:

  

表albumData容器为每个用户提供每张照片的唯一行   他们已经设置了专辑,这是我想要返回的数量   最初的行。但是我想比较albumData中的id   albumID是专辑表,如果有行数   albums.albumID = albumData.id不止一个,然后返回这些行。

4 个答案:

答案 0 :(得分:0)

我会假设你遇到某种错误.. 如果你试图阻止空记录集:

使用像这样的东西

$getPhotosq = "
SELECT photos.photo FROM albums, photos 
WHERE albums.userID='$id' 
AND albums.photoID=photos.id 
AND albums.albumID=$albumID 
ORDER BY photos.id DESC LIMIT 6"; 

$rs = mysql_query($getPhotosq);
if($rs) {
 /// DO THE CODE
}

答案 1 :(得分:0)

您的查询似乎正确

下面可能有问题...

NO 记录等于$id AND $albumID。请先手动检查并再次执行查询...

祝你好运!!!

答案 2 :(得分:0)

接下来试试..如果我理解正确的问题

SELECT photos.photo 
FROM albums
INNER JOIN photos on albums.photoID = photos.id 
INNER JOIN albumData ON albumData.id = albums.albumID
WHERE albums.userID = '$id' 
  and albums.albumID = $albumID 
  and albumData.state = '0'
ORDER BY photos.id DESC LIMIT 6;

答案 3 :(得分:0)

  SELECT albumData.* 
    FROM albumData, albums 
   WHERE albumData.userID='$id' 
     AND albumData.state='0' 
     AND albums.state='0' 
     AND albumData.id=albums.albumID 
GROUP BY albums.albumID 
ORDER BY albums.date DESC