2013-10-22 2 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)){ 

위의 코드는 가장 많은 댓글 {수 (comto)}와 맨 3 '이야기'를 반환해야합니다. 주석은 스토리와 다른 테이블에 저장됩니다. 위의 코드는 값을 반환하지 않으며 오류를 표시하지 않습니다. 누군가 제발 도와 줄 수 있니? 이 작품에 대한

답변

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에서 결과를 얻고 그들을 다시 데이터베이스에 전달하는 것이 바람직하지 않다고 제안했다. –