[英]SQL - Check if data EXIST on another table too
I am trying to check if L# exist in both table trkdriver and trkmechanic; 我正在尝试检查表trkdriver和trkmechanic中是否都存在L#;
I created a procedure which will take in a L# but the issue is how do i check that L# exist in both trkdriver and trkmechanic. 我创建了一个将使用L#的过程,但是问题是如何检查trkdriver和trkmechanic中都存在L#。
execute v_emp(10001);
PLSQL code: PLSQL代码:
CREATE OR REPLACE procedure v_emp
(emp_license IN trkdriver.L#%TYPE)
IS
result VARCHAR2(10);
BEGIN
select e# INTO result
from trkdriver where l#=emp_license;
DBMS_OUTPUT.PUT_LINE('RESULT' || result);
END;
/
SQL> select E# from trkdriver; SQL>从trkdriver选择E#;
E#
----------
1
3
5
7
9
11
13
7 rows selected. 已选择7行。
I tried below to check if its exist on two tables: 我在下面尝试检查它是否存在于两个表中:
SQL> select E# from trkdriver where EXISTS (select * from trkmechanic where trkd
river.L# = trkmechanic.L#);
It give me 0 rows return.. 它给我0行返回。
SQL> desc trkdriver;
Name Null? Type
----------------------------------------- -------- ----------------------------
E# NOT NULL NUMBER(12)
L# NOT NULL NUMBER(8)
STATUS NOT NULL VARCHAR2(10)
SQL> desc trkmechanic;
Name Null? Type
----------------------------------------- -------- ----------------------------
E# NOT NULL NUMBER(12)
L# NOT NULL NUMBER(8)
STATUS NOT NULL VARCHAR2(10)
EXPERIENCE NOT NULL VARCHAR2(10)
Try this query: 试试这个查询:
select td.e# INTO result
from trkdriver td
join trkmechanic tm on tm.L#= td.L#
where rd.l#=emp_license;
BEGIN
EXISTS
(SELECT A.L#
from trkdriver AS A
INNER JOIN
trkmechanic AS B
ON A.L#=B.L#
WHERE A.L# = emp_license
)
END
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.