sql查询条件java servlet

时间:2018-06-13 17:12:08

标签: java sql servlets conditional-statements

你好我有sql查询条件如下:

rs = stmt.executeQuery("SELECT * FROM history WHERE identifikator IN (SELECT * FROM ban WHERE zabanovany = 0)");

找不到列标识符。 它给了我错误:未知列'标识符' in' IN / ALL / ANY子查询'

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

使用in运算符通过将行与一组值进行比较来输出行。有一个简短的材料可以很好地解释这一点: https://www.essentialsql.com/in-operator-with-a-subquery/ 可以这样想:你想在where子句中比较的行是2维。就是它有行和列。

      WHERE identifikator IN (SELECT * FROM ban WHERE zabanovany = 0)")

IN运算符是一个线性运算,当您将一个表的所有列用于where子句时,它可能无法正常运行。因此,我认为您可以重新设计查询,只选择您感兴趣的列。 从你的评论中,你说idetificator不在历史表中,所以你的问题可能源于那里。