人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

mysql4.0を使用しています。
A,Bというテーブルがあります。
それぞれ、neta という項目があり、

A
neta
---
いか
たこ
はまち

B
neta
---
いか
はまち
さば


というような形でデータが入っています。
この時、A,Bの両方に入っているデータだけを選び出し、その選択結果を、Aに反映させたいのですが、どのようなSQLを書けばよいでしょうか?

上の例でいうと、

A
neta
----
いか
はまち

としたいのですが。Bはそのままでいいです。

●質問者: bonyan
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:SQL データ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● freemann
●1ポイント

しばらくSQLを書いてないのでうろ覚えですが、

delete From A where A.neta not in (select A.neta from A B Where A.neta = B.neta)

でよろしいかと


2 ● ohmix1
●1ポイント

DELETE FROM A WHERE A.neta NOT IN (SELECT B.neta FROM B)

サブクエリでBにはないネタをAから削除する。

でどうでしょう?

mysql4.0で試してないので確認願います。

以上


3 ●
●78ポイント ベストアンサー

MySQLはバージョン4.0ではサブクエリは使えません。

4.1からサブクエリに対応しています。

[参考URL]

集合差問い合わせのMINUSも使えませんので、単純なSQLのみでは対応不可能です。

例えば、PHPの場合でしたら、以下のような流れで対応可能だと思います。

参考になれば幸いです。

◎質問者からの返答

ありがとうございます。やっぱりこのバージョンでは、SQLだけではできないんですね。

perl使ってるので、別の方法で考えてみます。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ