2012-01-22 72 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