2012-01-22 43 views
1

如何将此查询更改为仅返回返回多于0行的行?仅当行数大于零时,mysql查询才会返回

我需要结合这两个查询。我需要返回第二个查询返回至少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的行数大于1,则返回这些行。

+0

编辑你的问题,并提供表结构PLS ... –

+1

'只返回返回大于0 rows.'我不排得到它请给更多的信息 – rauschen

+0

结构与类型请愿...像ID INT ... –

回答

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; 
+0

这似乎应该工作,但它不会返回任何东西。 –

+0

仍然没有工作,你有一对夫妇列错误的名字,我改变他们应该但是,但仍然不会返回任何东西。 (我编辑你的答案正确的行,即时通讯不知道它是否会显示或不通过) –

+0

什么不工作..你没有输出?或什么..可以发布您的PHP代码? – rauschen

0

我要去假设你得到了某种错误.. 如果你试图阻止空记录:

使用someything这样

$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 
} 
+0

你确定要调用'mysql_query(mysql_query(...))'吗? – piotrm

+0

编辑:对不起,复制粘贴错误:/ – Deano

+0

我实际上是在尝试做这个错误,我需要编辑第一个查询,但是我需要计算第二个查询返回的行数。 –

0

您的查询似乎正确

下面可能是问题...

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

祝您好运!

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