2010-05-11 3 views
0

아래 쿼리는 제대로 작동합니다. 그것은 "제출"과 "로그인"이라는 두 개의 MySQL 테이블에서 데이터를 가져옵니다. 같은 데이터베이스에서 "주석"이라는 세 번째 테이블의 데이터를 가져 오려고합니다.쿼리 도움말에 가입

표 "의견"은 다음과 같은 필드가 있습니다

". 이름"테이블의 필드

commentid, loginid, submissionid, comment, datecommented 

두가 "로그인" "은 loginid"과라고

아래의 쿼리에서 "loginid"가 "login"의 "loginid"와 같고 "username"이 "$ profile"인 "comment"의 모든 "commentid"를 계산하고 싶습니다.

어떻게하면됩니까? 사전에

감사합니다,

$sqlStr1 = "SELECT l.username, l.loginid, s.loginid, s.submissionid, s.title, s.url, s.datesubmitted, s.displayurl, l.created, count(s.submissionid) countSubmissions 
       FROM submission AS s 
     INNER JOIN login AS l 
       ON s.loginid = l.loginid 
       WHERE l.username = '$profile'"; 
+0

쿼리가 예상대로 작동합니까? 'count (s.submitid)'와 SELECT의 다른 많은 필드가 포함되어 있지만 GROUP BY는 없습니다. – newtover

답변

0

내가 별도의 쿼리를 사용하는 것, 그것은 아마도 더 빨리 그 1 개 복잡한 쿼리를 실행 종료됩니다.

0
SELECT l.username, l.loginid, s.loginid, 
    s.submissionid, s.title, s.url, s.datesubmitted, s.displayurl, l.created, count(s.submissionid) AS countSubmissions 
FROM submission AS s LEFT JOIN login AS l USING(loginid) 
WHERE l.username = '$profile' 
GROUP BY loginid; 
관련 문제