Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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
sql查询条件java servlet_Java_Sql_Servlets_Conditional Statements - Fatal编程技术网

sql查询条件java servlet

sql查询条件java servlet,java,sql,servlets,conditional-statements,Java,Sql,Servlets,Conditional Statements,您好,我有sql查询,条件如下: rs = stmt.executeQuery("SELECT * FROM history WHERE identifikator IN (SELECT * FROM ban WHERE zabanovany = 0)"); 它找不到列标识符。 它给了我一个错误:在/ALL/ANY子查询中的未知列'identificator'您需要在子查询中选择此列 WHERE identifikator IN (SELECT identifikator FROM ban

您好,我有sql查询,条件如下:

rs = stmt.executeQuery("SELECT * FROM history WHERE identifikator IN (SELECT * FROM ban WHERE zabanovany = 0)");
它找不到列标识符。
它给了我一个错误:在/ALL/ANY子查询中的未知列'identificator'

您需要在子查询中选择此列

WHERE identifikator IN (SELECT identifikator  FROM ban WHERE.....

通过将行与一组值进行比较,可以使用in运算符输出行。这里有一个简短的材料很好地解释了这一点: 这样想:在where子句中要比较的行是二维的。也就是说,它既有行也有列

      WHERE identifikator IN (SELECT * FROM ban WHERE zabanovany = 0)")
IN运算符是一种线性操作,在where子句中使用表的所有列时可能无法正常工作。因此,我认为您可以重新设计查询,只选择您感兴趣的列。
根据您的评论,您说Identificator不在历史记录表中,因此您的问题可能源于此

identificator是历史记录表中的列吗?我有一个名为ban的SQL db,列identificator位于其中。它不在历史记录表中,它在同一个数据库中的另一个表中。如果这是SQL,您不能选择*使用in语句,您必须只选择要匹配的select字段,因此,您只能从ban表中选择字段标识符。这可能不是你的错误,但一旦你修复了当前的错误,可能会是一个新的错误。虽然不起作用,但这看起来是最好的主意:)继续努力