2013-10-22 166 views
0

我有如下的查詢:嵌套mysql的select語句

$sult = mysql_query("select * from stories where `categ` = 'businessnews' and `stryid`='".mysql_query("SELECT * FROM comments WHERE `comto`='".mysql_query("select * from stories where `categ` ='businessnews'")." ORDER BY COUNT(comto) DESC")."' LIMIT 3") or die(mysql_error()); 
       while($ow=mysql_fetch_array($sult)){ 

上面的代碼應該返回頂部3「故事」最意見{計數(comto)}。評論存儲在與故事不同的表格中。上面的代碼不會返回任何值,也不會顯示任何錯誤。有人可以幫忙嗎?

回答

0

你傳入查詢MySQL服務器,以便讓它做其工作。

SELECT 
    *, 
    (SELECT COUNT(1) FROM comments WHERE `comto` = WHERE story_id = s.id) as commentsCount 
FROM stories s 
WHERE 
    s.categ = 'businessnews' 
ORDER BY commentsCount DESC 
LIMIT 3 
+0

請明確表示:您打算將整個字符串傳入而不是嵌套預處理語句,對吧? – Makoto

+0

@Makoto我認爲我不能更明確。此外,沒有任何關於準備好的陳述有問題或在我的答案中(但是,當然OP應該使用它們)。我只是建議執行查詢,在PHP中獲取結果並將它們傳回數據庫沒有任何意義。 –