我有三個表:如何在插入前檢查兩個條件?
// Posts
+----+----------+---------------+-----------+
| id | title | content | id_author |
+----+----------+---------------+-----------+
| 1 | title1 | content1 | 1234 |
| 2 | title2 | content2 | 5678 |
+----+----------+---------------+-----------+
// Users
+----+--------+--------+
| id | name | active |
+----+--------+--------+
| 1 | jack | 1 |
| 2 | peter | 0 |
| 3 | John | 1 |
+----+--------+--------+
// Votes
+----+---------+---------+
| id | id_post | id_user |
+----+---------+---------+
| 1 | 32 | 1234 |
| 2 | 634 | 5678 |
| 3 | 352 | 1234 |
+----+---------+---------+
現在我需要插入一個新的投票之前檢查兩個條件爲Votes
表:
- 作者的ID和我已經通過是否相同?
Posts.id_user = :author
(我知道我可以通過FK做到這一點,但我不想) - 當前用戶的帳戶是活動的嗎?
Users.active = 1
而且,這裏是我的查詢:
INSERT INTO Votes (id_post,id_user)
SELECT ?,?
FROM Posts p
WHERE p.id_user = :author limit 1;
如何添加第二個條件Users.active = 1
我的查詢?
編輯:其實我試圖不要讓人們能投誰不活動(active = 0
)。例如,如果SO禁止男性,那麼我不能投票發佈,因爲我(當前用戶)被禁止。所以我很肯定$_SESSION['id']
應該在查詢中使用。
看,我想檢查**當前用戶是否**處於活動狀態。所以我想我必須在查詢中使用'$ _SESSION ['id']'。 – stack
我編輯了查詢。 'author'是帖子作者,'user'是當前的選民。 –