【发布时间】:2015-04-16 22:27:50
【问题描述】:
下面的页面显示了这个:
使用的 SELECT 语句的列数不同
发生了什么,如果可能,我该如何解决?
test.php
<?php
include("mysqlconnect.php");
$sql = "SELECT * FROM login
INNER JOIN perguntador ON perguntador.autor_id = login.id
UNION ALL
SELECT * FROM perguntador
INNER JOIN perguntadorrespostas
ON perguntadorrespostas.question_id = perguntador.question_id";
$result = mysqli_query($conexao, $sql) or die (mysqli_error($conexao));
$assoc = mysqli_fetch_assoc($result);
?>
这段代码涉及到表:login(用户)、questions(加入登录表以访问 user_id)和 Comments(加入日志表以获得评论的用户名,并加入表 questions 以了解哪个问题用户发表了您的评论)。
【问题讨论】:
-
基本上,您使用
SELECT *选择表中的所有列,您还使用UNION,当使用union时,两个选择必须具有确切的列数,或者你得到这个非常描述性的错误 -
在每种情况下将您的
*换成逗号分隔的列列表 - 只是您需要的列。 -
我会尽量等我一下,谢谢! (谷歌翻译)
-
我不太明白你最近的问题编辑。基本上,例如,如果您在
UNION之前有 6 列,那么您必须在UNION之后也有 6 列。如果列数不同,则会出现此错误。 -
错误字段列表中的“user_id”列不明确(这解决了吗?=perguntador.autor_id 而不是autor_id)