• 締切済み

テーブルデータの絞込み条件

MySQL4.1、PHP Version 4.3.9を使用しています。 下記のような2つのテーブルA,Bから テーブルAに存在するキー(no)のデータのみ取得したいのですが、 どのようにWHERE文を書いたら一回のSQL文で取得出来るのでしょうか。 テーブルA no |name 1 |たろう 2 |はなこ 3 |じろう テーブルB no |old 1 |16 3 |18 取得したい結果テーブル no |name 2 |はなこ 良い方法が見つかりません。 宜しくお願いします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

単純に外部結合してNULL値をさがします SELECT A.no,name FROM テーブルA AS A LEFT JOIN テーブルB AS B ON A.no=B.no WHERE B.no IS NULL

chika_123
質問者

お礼

yambejpさんありがとうございました♪ 無事、絞り込む事が出来ました。 LEFT OUTER JOINでなんとかしようとしてたのですが、 LEFT JOINは気づきませんでした。^^;

回答No.1

サブクエリ(副問合せ)で、NOT INを使う方法があります。 WHERE テーブルA.no NOT IN (SELECT no FROM テーブルB);

chika_123
質問者

お礼

ありがとうございました!サブクエリーの方法、勉強になりました。 ただ、なんどやっても You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT no FROM テーブルB)' at line 1 と、エラーが出るので、なんでだろうと思っていたら、、 MySQLのバージョンが4.0.20でした。申し訳ありません。。

関連するQ&A