大家早上好。OUTER JOIN MySQL中的三個不同表格的問題
背景
我在這樣的情況:我有三個表這種方式構造(省略爲簡潔IDS)
SUBS:代碼,MAG,開始,結束
USERS:代碼,電子郵件
問題:問題,雜誌,出版物
「subs」包含訂閱雜誌:CODE是公司代碼,MAG是mag的標識符,START和END是訂閱有效的日期。
「用戶」包含的公司代碼(1/N)
「問題」相關的電子郵件是每本雜誌的每個問題的列表,其出版日期
樣本數據
SUBS: C0003072, 01ARS, 2014-01-01, 2014-03-01
ISSUES: 01ARS14000387, 01ARS, 2014-01-01
01ARS14000388, 01ARS, 2014-02-01
01ARS14000389, 01ARS, 2014-03-01
01ARS14000390, 01ARS, 2014-04-01
USERS: C0003072, [email protected]
C0003072, [email protected]
我想要達到的目標
所有擁有他們有權查看的雜誌的用戶列表。如果他們的子刊物中沒有雜誌,我只需要用戶。因此,對於例如之前:
[email protected], 01ARS14000387
[email protected], 01ARS14000388
[email protected], 01ARS14000389
[email protected], 01ARS14000387
[email protected], 01ARS14000388
[email protected], 01ARS14000389
WHERE我堅持 我已經寫了兩個不同的查詢:
SELECT subs.code, issues.issue
FROM subs
LEFT JOIN issues
ON subs.mag=issues.mag
WHERE issues.pubdate<=subs.end
AND issues.pubdate>=subs.start
這正確給我的所有雜誌公司應該看到列表
以下步驟是我遇到問題的地方。我嘗試將單個查詢放在一起以獲得上述所需的結果,但我一直得到一個我不明白的語法錯誤。這是我的查詢:
SELECT subs.code, issues.issue, users.email
FROM subs
LEFT JOIN issues
ON subs.mag=issues.mag
OUTER JOIN users
ON subs.code=users.code
WHERE issues.pubdate<=subs.end
AND issues.pubdate>=subs.start
爲了我,儘管有限,SQL我需要使用外部的知識加入讓每一個用戶,即使他們沒有雜誌。但這似乎並不工作
任何幫助,將不勝感激。
沒有人會幫你,直到你提供的腳本,在第一次讀到[文章](http://tkyte.blogspot.de/2005/06/how-to-ask-questions .html) – zaratustra 2014-08-29 09:49:09
既然你想要所有的用戶,'users'應該是'FROM'表,然後你應該用另外兩個表'LEFT JOIN'。 – Barmar 2014-08-29 09:50:10
@zaratustra感謝您的鏈接,這非常有用。對不起,如果我的帖子寫得不好 – 2014-08-29 09:57:25