你好我有sql查询条件如下:
rs = stmt.executeQuery("SELECT * FROM history WHERE identifikator IN (SELECT * FROM ban WHERE zabanovany = 0)");
找不到列标识符。 它给了我错误:未知列'标识符' in' IN / ALL / ANY子查询'
答案 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不在历史表中,所以你的问题可能源于那里。