示例:
select * from employee, department
where
employee.empid=?
and department.empid=?
-?用来获得employee.empid和department.empid相同的值。
欣赏您的答案。
答案 0 :(得分:1)
好吧,您的查询似乎是错误,您的问题也没有多大意义。我认为,您应该加入这些表并使用一个参数。例如,如下所示:
select *
from employee e join department d on e.deptno = d.deptno
where d.deptno = :par_deptno
您希望使用EMPID
作为参数;为什么? EMPID
表中的DEPARTMENT
在做什么?它只是不属于那里。因此,您发布的示例有误,或者您不太了解自己在做什么,或者还有其他事情。
[编辑,发表评论后]
没什么意义,但是-您可以按照以下方式进行操作(如果我理解您的意思):
SQL> select e.deptno e_dept,
2 d.deptno d_dept,
3 d.dname,
4 e.ename
5 from emp e join dept d on e.deptno = d.deptno
6 join (select 10 params from dual) p on e.deptno = p.params
7 and d.deptno = p.params;
E_DEPT D_DEPT DNAME ENAME
---------- ---------- -------------- ----------
10 10 ACCOUNTING CLARK
10 10 ACCOUNTING KING
10 10 ACCOUNTING MILLER
SQL>
答案 1 :(得分:0)
您可以使用WITH
子句选择参数,因此您可以在整个查询中访问它们,无论是在主查询中还是在某些子子查询中
with params as
(
select
:emp_id as emp_id,
:dept_id as dept_id
from dual
)
select ...
from . ..
where x.emp_id = (select emp_id from params)
and y.emp_id <> (select emp_id from params)
and z.dept_id = (select dept_id from params);