Вот моя схема:Sub-запрос не работает
Table "Questoes"; +----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | id_quest | int(11) | NO | | NULL | | | questao | varchar(255) | NO | | NULL | | | nivel | int(11) | NO | | NULL | | | tipo | varchar(255) | NO | | NULL | | +----------+--------------+------+-----+---------+----------------+ Table "Respostas"; +----------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | id_quest | int(11) | NO | | NULL | | | resposta | varchar(255) | NO | | NULL | | | r_valido | enum('0','1') | NO | | NULL | | +----------+---------------+------+-----+---------+----------------+
Мой запрос:
SELECT q.questao, r.resposta
FROM questoes q, respostas r
WHERE q.id_quest IN (19,20,21)
AND q.id_quest=r.id_quest
AND r.r_valido = (SELECT resposta FROM respostas WHERE r_valido= 1)
Что мне нужно, это поле questao
из таблицы Questoes
и поле resposta
из таблицы respostas
где поле r_valido = 1
. В поле resposta
есть 4 результата, и только один из них действителен, другими словами, где поле r_valido = 1
.
Может вам предоставить пример набора данных в виде SQL-скрипта с ожидаемыми результатами? – halfer
Эти большие столы? и, возможно, вы можете перевести эти имена таблиц/столбцов на английский, я не могу понять испанский? –