3

1つのテーブル(selectステートメントを使用して作成)のすべての値が他のテーブル(selectコマンドを使用して作成)のすべての1つのselectステートメントに存在するかどうかを確認するコマンドを知りたいと思いました。たとえば、属性fidファカルティテーブルfaculty_nameがあります。および、、o別の。現在のすべての部屋で教えているすべての教員を確認するにはどうすればよいですか?fidclass_nameroom_n

4

3 に答える 3

7

下手な質問ですが、

--
-- 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
于 2012-10-29T16:35:51.387 に答える
0

このようなものを試すことができます。

select a.faculty_name, b.class_name, b.room_no 
  from faculty a, Table2 b 
 where a.fid = b.fid
于 2012-10-29T16:23:49.737 に答える
-1

教員とクラスの 2 つのテーブルがあるとします。Fid (教員 ID) は、教員テーブルの主キー、およびクラス テーブルの外部キーにする必要があります。

ここで探しているのは、すべての学部にクラスがあるか、一部の学部だけがあるかの 2 つのケースだけです。

誰がクラスを持っているかを見つけるには:

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
于 2012-10-29T23:18:34.333 に答える