2013-10-22 167 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中获取结果并将它们传回数据库没有任何意义。 –