2012-10-29 160 views
3

我想知道的命令檢查是否都在同一個表(使用select語句創建)的值是出現在其他表中存在(使用SELECT命令創建)所有在一個select語句。例如,我有一個屬性fidfaculty_name教員表fid,class_name, room_n o在另一個。 我該如何檢查教室裏所有教室裏的教師?檢查是否所有的值在一個表中的列在另一個表

+1

你嘗試過什麼? –

+1

**這真的很難閱讀你的意思,我的意思是你有一切代碼塊粗體。你應該更好地格式化你的問題。** –

回答

0

你可以嘗試這樣的事情,

select a.faculty_name, b.class_name, b.room_no 
    from faculty a, Table2 b 
where a.fid = b.fid 
5

不良問到的問題,但

-- 
-- all faculty without a class 
-- 
select * 
from faculty f 
where not exists (select * 
        from class c 
        where c.fid = f.fid 
       ) 
-- 
-- all classes wihout faculty 
-- 
select * 
from class c 
where not exists (select * 
        from faculty f 
        where f.fid = c.fid 
       ) 
-- 
-- all-in-one. Each returned row represents 
-- either a faculty or class without a match 
-- in the other 
-- 
select * 
from  faculty f 
full join class c on c.fid = f.fid 
where c.fid is null 
    or f.fid is null 
-1

比方說,你有兩個表:教師和班級。 Fid(faculty id)應該是教師表上的主鍵,並且是班級表上的外鍵。

這裏只能是你正在尋找兩種情況:各院系上課或只有一些院系。

找到誰擁有類:

SELECT 
    fid, 
    faculty_name 
FROM 
    faculty f 
    INNER JOIN 
    class c 
    ON 
     f.fid = c.fid 

找到誰沒有做類:

SELECT 
    fid, 
    faculty_name 
FROM 
    faculty f 
    LEFT OUTER JOIN 
    class c 
    ON 
     f.fid = c.fid 
WHERE 
    c.fid is null 
相關問題