我在PostgreSQL數據庫中有三個表:用戶,活動,場所。如何使用外連接和笛卡爾積連接三個表
Users:
- id
- name
Visits:
- id
- user_id
- location_id
Venues:
- id
- name
我想如果用戶沒有訪問過一個地點尚未檢索所有活動爲特定用戶,事件。我已經試過了一些聯接:
SELECT venues.id as venue, COUNT(activities.id) as visits
FROM users
RIGHT OUTER JOIN activities ON users.id=activities.user_id
RIGHT OUTER JOIN venues ON activities.venue_id=venues.id
WHERE users.id=1234
GROUP BY venues.id
ORDER BY venues.id
我想訪問變量包含0,在用戶沒有訪問過的位置(=有活動沒有條目),如果用戶的活動計數已經訪問過該位置。
但我只得到用戶訪問過的位置:
venue | visits
1 3
2 4
3 22
4 1
我想,那RIGHT OUTER JOIN
會從右側返回所有條目,但它沒有。
我試過了,但我得到了相同的輸出作爲正確的加入返回 – 23tux 2011-04-26 15:02:55
thx爲您的編輯,但我得到一個錯誤,線附近'加入場館AS v '。不應該是'從用戶那裏,場所AS v'而不是'JOIN場館v'? – 23tux 2011-04-26 15:33:50
hmmmm,'* ='不適用於PostgreSQL,有沒有其他辦法?你爲什麼要說老派符號? ;) – 23tux 2011-04-26 15:48:28