2011-11-07 125 views
2

我正在兩個表上運行連接,但我遇到了一些麻煩。Mysql連接查詢,獲取記錄列表並加入投票

表興趣:「照片」,「投票」,「周」

我試圖運行拉起的照片列表的查詢,包括與它,總投票量爲「周「,這是活躍的。

「投票」表由以下外鍵組成:photo_id,week_id,user_id。這使我能夠計算出投票的「周」。另外,將周視爲一個實體而不是時間表,它只是「星期」表中的一個記錄。

這是我到目前爲止有:

SELECT *, COUNT(*) as `weekly_votes` 
FROM (`photo`) 
JOIN `vote` ON `vote`.`photo_id` = `photo`.`id` 
WHERE `vote`.`week_id` = '6' 
GROUP BY `photo`.`id` 

的問題是,這將拉漲的有在投票表中指定的周票的照片列表,但如果沒有票號的照片返回已經在那個星期給了。

基本上:

WHERE `vote`.`week_id` = '6' 

需要只適用於東西在連接語句,而不是阻止它限制的照片回來。我知道至少我需要使用某種OUTER連接,但我認爲WHERE子句仍然會阻止它工作。

我希望我的問題是有道理的......

回答

3

你需要一個外部聯接。因爲您只想在外連接上應用您的where條件,所以您需要在連接條件中提及week_id。

LEFT JOIN `vote` ON `vote`.`photo_id` = `photo`.`id` AND `vote`.`week_id` = '6'