2012-12-11 21 views
0

我有兩個表:'cat_page'和'pages'。 'cat_page'表是類別和其中包含的頁面的關聯。 '網頁'表包含有關網頁的數據。我允許用戶在頁面上投票,其中total_votes是「頁面」內的一列。從連接表中選擇 - 不完整的表

我想創建一個查詢,我可以在其中選擇一個尚未獲得任何投票的類別中的所有頁面。我無法逾越的部分是'cat_page'中有很多頁面沒有'頁面'中的關聯行。如果我把在:

AND pages.total_votes > 0 

到評論部分下面,我將只選擇頁面中pages.total_votes = 0,但沒有任何在「頁」沒有關聯的頁面cat_page.page的。

任何幫助表示讚賞。

$data = array($lastcat); 
$STH = $DBH->prepare("SELECT cat_page.page FROM cat_page 
LEFT JOIN pages ON cat_page.page = pages.page 
WHERE cat_page.cat_id = ? 
/// unsure what to do here 
"); 
+0

如果您將'cat_id'放在where子句中,然後添加'AND pages.total_votes = 0',並且如果您想爲所有'cat_id'獲取它,則使用'WHERE pages.total_votes = 0' –

回答

0

當您執行左外連接,不存在將拿出NULL

AND (pages.toatl_votes IS NULL OR pages.total_votes = 0) 

應該解決您的問題列。大於NULL是錯誤的。

0

我認爲你遇到的問題是你在cat_page上使用了LEFT JOIN,但是你應該選擇正確的連接。

SELECT cat_page.page FROM cat_page 
RIGHT JOIN pages ON cat_page.page = pages.page 
WHERE cat_page.cat_id = ? and page.total_votes = 0 

希望有幫助。