Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 子查询不';行不通_Php_Mysql - Fatal编程技术网

Php 子查询不';行不通

Php 子查询不';行不通,php,mysql,Php,Mysql,以下是我的模式: Table "Questoes"; +----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | i

以下是我的模式:

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 | | +----------+---------------+------+-----+---------+----------------+ 我需要的是来自表
Questoes
的字段
questao
,以及来自表
respostas
的字段
resposta
,其中字段
r_valido=1

字段
resposta
有4个结果,只有一个是有效的,换句话说,如果字段
r_valido=1

您的查询应该如下所示:

SELECT q.questao, r.resposta FROM questoes AS q JOIN respostas AS r ON r.id_quest = q.id_quest WHERE q.id_quest IN (19,20,21)  AND r.r_valido = "1"
我还发现了在查询中使用
1
而不是
“1”
时,是什么导致了这个奇怪的错误:

我们强烈建议您不要使用数字作为枚举 值,因为它不会通过适当的 TINYINT或SMALLINT类型,并且很容易将字符串和 如果引用,则基础数值(可能不相同) 枚举值不正确


我没有完全理解你,但我想这就是你想要的:

SELECT q.questao, r.resposta
FROM questoes as q
INNER JOIN respostas as r
    ON q.id_quest=r.id_quest 
WHERE
    q.id_quest IN (19,20,21) AND
    r.r_valido = '1'

您能否提供一个示例数据集作为SQL FIDLE,并获得预期的结果?这些是大型表吗?也许你可以把这些表/列名翻译成英语,我不懂西班牙语?问题还在继续。。。没有返回正确的值。。。查询返回的值为“r_valido”=0立即重试-在数字1的周围有“r_valido”,我在localhost上尝试了类似的方法,它似乎有助于我得到字段“resposta”的4个结果(答案),正确答案是当字段“r_valido”等于1时。您的查询返回字段“r_valido”等于0的值。
SELECT q.questao, r.resposta
FROM questoes as q
INNER JOIN respostas as r
    ON q.id_quest=r.id_quest 
WHERE
    q.id_quest IN (19,20,21) AND
    r.r_valido = '1'