我有三張表 - 通知,notices_read和公司。通知包含顯示在Web應用程序中的客戶通知列表,notices_read指示他們點擊並讀取消息,以便在公司持有包括其加入日期在內的公司信息時不再顯示。此外,我只希望向14天前加入的客戶展示此通知。僅當日期少於14天前才顯示
一切工作欄在14天前的部分 - 如果我刪除該行通知顯示正確取決於在notices_read中是否有值,但如果我添加日期行,然後沒有錯誤,沒有任何返回。
companies
+-----------------+
| id | datestamp |
+-----------------+
| 1 | 2012-12-20 |
| 2 | 2012-12-20 |
| 3 | 2012-11-20 |
| 4 | 2012-11-20 |
+-----------------+
notices_read
+-----------------------------+
| id | company_id | notice_id |
+-----------------------------+
| 1 | 3 | 1 |
+-----------------------------+
notices
+----------------------+
| id | title | active |
+----------------------+
| 1 | title1 | 1 |
| 2 | title2 | 0 |
+----------------------+
- 注意2不應該顯示爲沒有將其設置爲主動
- 注意事項1不應該展現給公司1或2,因爲它們不是14天
- 注意事項1不應該展現給公司3,因爲它已經被閱讀
- 注意事項1應該展現給公司4,因爲它沒有被閱讀和公司4是超過14天
這裏是我的查詢:
Select
notices.description,
notices.id,
notices.title,
notices_read.company_id,
companies.datestamp
From
notices Left Join
notices_read On notices.id = notices_read.dismiss_id Left Join
companies On notices_read.company_id = companies.id
Where
notices.active = 1 And
companies.datestamp <= DATE_SUB(SYSDATE(), Interval 14 Day) And
(notices_read.company_id Is Null Or notices_read.company_id != '$company_id')
我認爲這個問題是與連接,而不是雖然我意識到我的約會是錯誤的 - 我已經改變了來自和加入,因爲我需要顯示來自通知的數據而不是來自notices_read,它仍然沒有工作,但我認爲這是因爲我加入表1到表2然後嘗試ng將表2連接到表3 – bhttoan