简体   繁体   English

SQL-检查数据是否也存在于另一个表上

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM