Попробуйте изменить INNER JOIN
на tbl_questions_votes
на LEFT JOIN
, поскольку я предполагаю, что не имеет значения, имеет ли вопрос голосование или нет.
Во-вторых, вы присоединяетесь к столам answares
и questions
на user_id
. Я не думаю, что это имеет слишком много смысла, мне кажется, что вы получаете users
с questions
, что они сделали, и со всеми answares
, которые они отправили; в то время как ожидаемый результат - questions
, который имеет этот пользователь answared
!
Итак, я думаю, что было бы больше смысла, если бы вы присоединились так:
INNER JOIN
tbl_answares
ON
tbl_answares.user_id = tbl_users.user_id
INNER JOIN
tbl_questions
ON
tbl_questions.q_id = tbl_answares.q_id
LEFT JOIN
tbl_questions_votes
ON
tbl_questions.q_id = tbl_questions_votes.q_id
LEFT JOIN
tbl_users usrs2
ON
tbl_questions.user_id = usrs2.user_id
Это объединяет user
с его answares
вместе с answares
определенным questions
и votes
, приведенным для тех questions
, без исключения questions
, который не имеет votes
; и, наконец, присоединиться к users
, который сделал каждый question
, который вы извлекаете.
Если у вас есть какие-либо сомнения относительно объединения таблиц в SQL, я рекомендую эту замечательную тему SO и эту другую