Я создал две таблицы, в одной из которых хранятся вопросы викторины, а другой хранит все ответы, сделанные пользователями.Объединяйте таблицы, когда поля не равны - PHP MySQL
Первая таблица называется «вопросы» содержит следующие вопросы:
Field names: id|question
Eg. contents:
1|what's your fav color?
2|what's your fav animal?
Вторая таблица под названием «ответы» хранит все ответы, которые пользователи сделали:
Fields names: id|questionid|userid|answer
Eg. contents:
1|1|1|Red
1|1|3|Magenta
1|1|4|Green
Я хотел бы выберите те вопросы, на которые еще не ответил пользователь. Я храню идентификатор текущего пользователя в сеансе $ _SESSION ['id']. Я пытался так много способов, чтобы получить эти вопросы, ближайший запрос я сделал, был такой:
$query = SELECT questions.*, answers.* FROM questions LEFT JOIN answers ON questions.id=answers.questionid WHERE answers.id IS NULL OR answers.userid <> '.$_SESSION['id'];
Это не будет работать, потому что если есть другой идентификатор в таблице ответов на тот же вопрос ид, он по-прежнему выбирает эту строку. В чем может быть проблема? Где я испортил свой запрос?
Заранее благодарим за вашу помощь!
С одним ответом на вопрос он отлично работает, но если есть больше вопросов с большим количеством ответов, это происходит :( http://sqlfiddle.com/#!9/cd6560/2 Вопрос 2 уже был дан пользователем: 1, но запрос SELECT по-прежнему выбирает второй вопрос. – Kobanric
@Kobanric Извините, 'a.id', естественно, должен быть' a.questionid', который является полем, которое должно соответствовать идентификатору вопроса. Обновлен ответ/SQLfiddle. Http://sqlfiddle.com/#!9/cd6560/8 –
Удивительный! Большое спасибо за вашу помощь. – Kobanric