おすすめのモーニング・朝食メニューを教えて!

お世話になります。
うまい資料が見つからなかったので質問させてください。

例えば、下記のようなテーブルが3つあったとします。

<table1>
id
name
date

<table2>
id
tel

<table3>
id
etc

name,date,tel,etcは同タイミングで一括に登録され、3テーブルともに共通のidで保存されます。
この時、table1のdate(日付が入ります)が30日以上経過しているデータについて、いずれのテーブルからも削除したいと思っています。
こんな場合、どんなSQL文を書けば良いのでしょうか?

お分かりになる方、何卒よろしくお願いしますm(_ _)m

A 回答 (1件)

RDBMSは、ここのカテゴリ通りMySQLですか?


バージョンは?

MySQLなら、独自機能で複数表の削除が可能です。
MySQLでないなら、同じトランザクション内でそれぞれの表から削除するとか、トリガを利用するといった方法が考えられます。

MySQLの場合の例です。

delete tbl1,tbl2,tbl3 from tbl1,tbl2,tbl3
where tbl1.id=tbl2.id and tbl2.id=tbl3.id
and tbl1.`date`<date('2008-02-28')-interval 1 month

今日の日付を自動的に拾うには、curdate関数やcurrent_date関数を使う方法があります。

<マニュアル参照先>
http://dev.mysql.com/doc/refman/4.1/ja/delete.html
http://dev.mysql.com/doc/refman/4.1/ja/date-and- …
    • good
    • 0
この回答へのお礼

まさにビンゴ!でした。
ちなみにMySQLの4.1.20です。
初心者にご丁寧にありがとうございました。
助かりましたm(_ _)m

お礼日時:2008/02/22 21:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


おすすめ情報