2012-11-25 26 views
0

我想檢查是否在這兩個表trkdriver和trkmechanic存在L#;SQL - 檢查數據上的另一個表中存在太多

我創建了將在L#一個程序,但問題是我如何檢查L#兩個trkdriver和trkmechanic存在。

execute v_emp(10001); 

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>從trkdriver選擇電郵#;

 E# 
---------- 
     1 
     3 
     5 
     7 
     9 
     11 
     13 

選中7行。

我試過下面如果存在檢查兩個表:

SQL> select E# from trkdriver where EXISTS (select * from trkmechanic where trkd 
river.L# = trkmechanic.L#); 

它給我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) 

回答

0

嘗試此查詢:

select td.e# INTO result 
from trkdriver td 
join trkmechanic tm on tm.L#= td.L# 
where rd.l#=emp_license; 
0
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  
相關問題