我用三個MySQL表:加入查詢不能
評論
commentid loginid submissionid comment datecommented
登錄
loginid username password email actcode disabled activated created points
提交
submissionid loginid title url displayurl datesubmitted
在這三個表中,「登錄ID 「對應。
我想根據「submissionid」的數量拉前10名loginids。我想將它們顯示在一個3列的HTML表格中,該表格顯示了第一列中的「用戶名」,第二列中的「submissionid」的數量以及第三列中的「commentid」的數量。
我嘗試使用下面的查詢,但它沒有奏效。任何想法爲什麼不呢?
由於提前,
約翰
$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代表登錄ID。我怎麼能顯示沒有submitidsids的loginids? – John 2010-05-31 14:38:16
正確,然後用左連接替換JOIN。 – nuqqsa 2010-05-31 14:44:57
請參閱更新後的查詢,它還包含將NULL值轉換爲0. – nuqqsa 2010-05-31 14:52:09