アクセス講座

トップ > クエリ


■3つのテーブルを結合

select *
from T_ひらがな as a , T_カタカナ as b , T_漢字 as c
where a.ID = b.ID and b.ID = c.ID

『同文』※注意:アクセスで実行できません。
select *
from T_ひらがな as a
inner join (
select * from T_カタカナ as b
inner join T_漢字 as c
on b.ID = c.ID)
on a.ID = c.ID
アクセスは前者のみ実行可能。
SQLServerは後者のみ実行可能。

■テーブル結合後、データ更新 

『SQLServer用』
update a
set データ = "更新"
from T_ひらがな as a
inner join T_カタカナ as b
on a.ID = b.ID
where b.データ ="イ"

『アクセス用』
update T_ひらがな as a
inner join T_カタカナ as b
on a.ID = b.ID
set データ = "更新"
where b.データ ="イ"
[T_カタカナ]のデータフィールドが"イ"である行の
[T_ひらがな]のデータフィールドを"更新"とする。

アクセスでは、プログラム制御を使うしかないかも・・・

■重複データを取り除き表示

重複を取り除くには[ distinct ]を使用する。

select distinct * from T_ひらがな
同じデータは表示されない。

■2テーブル間の差分を取り除き表示

select a.* from T_テーブル1 as a
left join T_テーブル2 as b
on a.ID = b.ID
where b.データ <> Null

『同文』
select * from T_テーブル1 as a
where exists (
select "x" from T_テーブル2 as b
where a.ID = b.ID )
前者はleft join を使用。
後者はexists を使用。

■テーブルコピー

insert into T_コピー先
select * from T_コピー元

『同文』
insert into T_コピー先(ID , データ )
select ID , データ from T_コピー元
T_コピー先へデータを移動させる。
フィールド名を指定することも可能。