我正在尝试在Oracle中执行以下查询:
SELECT c.id_cliente, c.nombre_cliente, c.apellidos_cliente
FROM cliente c
WHERE not exists (SELECT f.id_finca
FROM finca f
WHERE f.habitaciones = 3
EXCEPT
SELECT v.id_fincas
FROM visitas v
WHERE v.id_cliente = c.id_cliente)
但是我收到错误“缺少右括号”。
括号是平衡的,我该如何解决这个错误?
答案 0 :(得分:1)
使用MINUS
代替EXCEPT
。
SELECT c.id_cliente,
c.nombre_cliente,
c.apellidos_cliente
FROM cliente c
WHERE NOT EXISTS (SELECT f.id_finca
FROM finca f
WHERE f.habitaciones = 3
MINUS
SELECT v.id_fincas
FROM visitas v
WHERE v.id_cliente = c.id_cliente)
答案 1 :(得分:0)
Oracle中没有运算符EXCEPT
。使用MINUS
代替它。
此外,您的查询似乎很奇怪:最好尝试使用两个not exists
,我认为它可以提供一些性能。