Как проверить два условия перед вставкой?

У меня три таблицы:

// 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 :

  1. Идентификатор автора и то, что я прошел, одно и то же? Posts.id_user = :author (я знаю, что могу сделать это с помощью FK, но я не хочу)
  2. Аккаунт текущего пользователя активен? Users.active = 1

Также здесь мой запрос:

 INSERT INTO Votes (id_post,id_user) SELECT ?,? FROM Posts p WHERE p.id_user = :author limit 1; 

Как добавить к моему запросу второе условие Users.active = 1 ?


EDIT: На самом деле я стараюсь, чтобы люди не могли голосовать, кто неактивен ( active = 0 ) . Например, если SO запрещает людям, то я больше не могу голосовать, потому что я (текущий пользователь) запрещен. Поэтому я уверен, что в запросе следует использовать $_SESSION['id'] .

 INSERT INTO Votes (id_post,id_user) SELECT p.id,u.id FROM Posts p, Users u WHERE p.id_user = :author AND u.id = :user AND u.active = 1 limit 1; 

то вы устанавливаете параметр user равным текущему идентификатору пользователя.

EDIT : Я полагаю, id_user в таблице Votes должен быть идентификатором избирателя, а не автором сообщения (правильно?), Поэтому я исправил запрос, исключающий JOIN .

Использовать и с помощью

 INSERT INTO Votes (id_post,id_user) SELECT ?,? FROM Posts p, Users u WHERE p.id_user = :author and u.active = 1 limit 1; 
 INSERT INTO Votes (id_post,id_user) SELECT p.id, u.id FROM Posts p INNER JOIN Users u ON 1 = 1 WHERE p.id_user = :author AND u.id = :current_user_id AND u.active = 1 LIMIT 1;