작동하지 않음 가입 :쿼리 제가 세 MySQL의 테이블을 사용하고
코멘트
commentid loginid submissionid comment datecommented
로그인
loginid username password email actcode disabled activated created points
제출이 세 개의 테이블에서
submissionid loginid title url displayurl datesubmitted
은 "은 loginid를 "대응합니다.
"submissionid"의 수에 따라 상위 10 개의 loginids를 가져오고 싶습니다. 첫 번째 열의 "사용자 이름", 두 번째 열의 "submissionid"수 및 세 번째 열의 "commentid"수를 표시하는 3 열 HTML 표에 표시하고 싶습니다.
아래 쿼리를 사용해 보았지만 제대로 작동하지 않았습니다. 왜 어떤 생각하지? 사전에
감사합니다,
존
$sqlStr = "SELECT
l.username
,l.loginid
,c.commentid
,count(s.commentid) countComments
,c.comment
,c.datecommented
,s.submissionid
,count(s.submissionid) countSubmissions
,s.title
,s.url
,s.displayurl
,s.datesubmitted
FROM comment AS c
INNER JOIN login AS l ON c.loginid = l.loginid
INNER JOIN submission AS s ON c.loginid = s.loginid
GROUP BY c.loginid
ORDER BY countSubmissions DESC
LIMIT 10";
$result = mysql_query($sqlStr);
$arr = array();
echo "<table class=\"samplesrec1\">";
while ($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td class="sitename1"><a href="http://www...com/.../members/index.php?profile='.$row["username"].'">'.stripslashes($row["username"]).'</a></td>';
echo '</tr>';
echo '<td class="sitename1">'.stripslashes($row["countSubmissions"]).'</td>';
echo '</tr>';
echo '</tr>';
echo '<td class="sitename1">'.stripslashes($row["countComments"]).'</td>';
echo '</tr>';
}
echo "</table>";
감사합니다 ...이 적어도 하나의 submissionid가있는 경우에만 loginids를 표시 할 것 같다. submissionid가없는 loginids를 어떻게 표시 할 수 있습니까? – John
오른쪽, JOIN을 LEFT JOIN으로 바꿉니다. – nuqqsa
업데이트 된 쿼리를 참조하십시오. 또한 NULL 값을 0으로 변환합니다. – nuqqsa