SQLのEXISTS

WHERE句にEXISTSと書いてそれにつづけてサブクエリをかく。 各行について条件に一致するものがあるとEXISTSが真になるからその行が抽出される、みたいな感じ。

drop table if exists A;
drop table if exists B;

create table A (id integer, name text);
create table B (id integer, title text);

insert into A values(1, '佐藤');
insert into A values(2, '鈴木');
insert into A values(3, '菊池');

insert into B values(1, '会社員');
insert into B values(1, '投資家');
insert into B values(2, '会社員');
insert into B values(2, '主夫');
insert into B values(3, '投資家');
insert into B values(3, '主夫');

select id, name from A
where exists (
    select 1 from B
    where A.id = B.id and B.title = '会社員');