假設我有兩個表,一個與博客和其他與讀者和他們的評論:SQL:適當加入語法
表1:
表名:相關博客文章:
結構:
id (int)
title (string)
表2:
表名:讀者:
id (int)
blog_post_id (int)
name (string)
comment (string)
在讀者表上有blog_post_id /名稱的獨特的複合密鑰(即每個帖子每個讀者發表一條評論),儘管這對我的問題可能無關緊要。
我希望能夠做一個單一的查詢告訴我每個BlogPost上的特定讀者的評論是什麼,但它應該包括沒有爲該讀者輸入評論的BlogPosts(所以查詢應該返回一行數據庫中的每篇博客文章)。
我想,像這樣幾個變化:
SELECT
BlogPosts.id,
BlogPosts.title,
Readers.name,
Readers.comment
FROM
BlogPosts
RIGHT JOIN Readers ON
(BlogPosts.id = Readers.blog_post_id)
WHERE Readers.name = "joe"
..this剛返回這裏居然有從喬註釋行。當我能夠獲得所有博客文章的其他變體給我一個無效的標識符,每當我包括where子句。
我在使用Oracle Express 10g的情況下,有任何區別。
感謝您的任何幫助。
這將起作用,但您可能需要考慮將RIGHT JOIN更改爲左外連接。無論出於何種原因,至少在與我合作的每個系統和開發人員中,LEFT都比RIGHT更受歡迎(但是如果其他人有不同的體驗,我會很感興趣)。我知道這只是一種風格,對於這個特定的查詢並不重要,但這可能是一個很好的習慣。 – 2010-10-10 02:20:28
這是我嘗試過的變化之一。我得到:ORA-00904:「joe」:無效標識符 – 2010-10-10 04:38:22
改爲使用單引號。我編輯了我的答案。 – bernie 2010-10-10 05:34:53