如何将此查询更改为仅返回返回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不止一个,然后返回这些行。
答案 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