表结构如下:甲骨文 - 缺少右括号
注意:使用的名称是仅用于说明目的。
表T1 - COL1 INT,COL2 CHAR,COL3 VARCHAR
表T2 - COL1 INT,COL2 VARCHAR COL3 CHAR
表T3 - COL1 INT - 从表2 COL2 INT COL1 - 从工作台T COL2 col3 INT
SELECT tt1.col2, COUNT(tt1.col1) FROM T1 tt1, T2 tt2, T3 tt3 WHERE tt2.col1 = tt3.col1 AND
tt3.col2 = tt1.col1 GROUP BY tt1.col1, tt1.col2 HAVING EVERY (tt2.col3 = 'something');
这显示与问题标题相匹配的错误;但是,如果删除条款,则不会报告错误。
查询语法正确吗?
你想要做什么?你可以将'having'子句移到'where'中。具体问题是您添加了“EVERY”一词,这不是Oracle语法。 – Ben 2012-02-20 13:18:40
@Ben:如果我需要每一个检查每个元组是否有col3中的'something',在表tt2中怎么办? – user980411 2012-02-20 13:20:18
然后,它仍然可以在“where”条款中使用。您正在使用隐式内部联接,因此您不会错误地将外部联接转换为内部联接。 – Ben 2012-02-20 13:22:14