• 締切済み

SELECT 文で

覚え始めで、どうにも上手くいかず困っております。 テーブル「個人ファイル」「個人ファイル2」 それぞれに「個人NO」の項目があります 「個人ファイル1」に存在し「個人ファイル2」に 存在しない「個人NO」の一覧を取得するには どうしたらよいのでしょうか? SQLSERVER でEXCEPTが使えなくて・・ どなたかお願いです。教えてください。

みんなの回答

回答No.1

SQL Serverも、バージョンによってSQL実装の状況が違いますから、明記するようにしてください。 差分検索ですぐに思いつくのは、以下のようなSQLです。 -- 例1 not existsを使う select * from 個人ファイル as pf1 where not exists (select 1 from 個人ファイル2 as pf2 where pf1.個人NO=pf2.個人NO) -- 例2 not inを使う select * from 個人ファイル where 個人NO not in(select 個人NO from 個人ファイル2) -- 例3 outer joinを使い、対応するキーがなかった行を検索 select pf1.* from 個人ファイル as pf1 left join 個人ファイル2 as pf2 on pf1.個人NO=pf2.個人NO where pf2.個人NO is null

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • select文について

    1つのデータの前後のデータを取得する場合、何か簡単に取得するselect文はありますでしょうか? 例) no name adress 1  山田  東京 3  山本  名古屋 6  田中  大阪 7  高橋  福岡 上記のようなテーブルがあった場合で、noが6の前後のデータを取得する場合、以下のように考えてみましたが他に簡単にデータを取得する方法はないでしょうか? なお、noが6の前後の数字(3や7)は変更される場合がある為、select文の際にno=3やno=7と固定する事は出来ません。 ・noが6の前のデータ(noが3)のデータを取得する場合 select adress table where no<6 oder by no limit 1 ・noが6の次のデータ(noが7)のデータを取得する場合 select adress table where no>6 oder by no limit 1 分かりにくい説明で申し訳ありませんが、どなたかよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • select文の書き方

    助けてください……(T-T) oracleをつかっていますが、SQLが苦手すぎて、どうしたらいいか分かりません。。。 解決策をご存じの方、教えていただけないで しょうか? テーブルは下記の2つがあります。 (1)Aテーブルの1カラムに、複数の商品IDを格 納している(カンマ区切り) (2)Bテーブルには、商品ID&商品名の一覧が ある このAテーブルの商品ID列に番号から、Bテー ブルの商品名を取得したいです。 ■Aテーブル no | 商品ID 1001 | 1、2 1002 | 1、2、3 1003 | 3 ■Bテーブル 商品ID | 商品名 1 | 商品A 2 | 商品B 3 | 商品C ■とりたいデータの形 1001 | 商品A、商品B 1002 | 商品A、商品B、商品C 1003 | 商品C カンマ区切りで格納しているとin句は使えな いと知りました。。 テーブルにカンマ区切りで格納することは、 変えることはできませんし、 SQLで1回で取得しなきゃいけないのです。 そんなこと、可能なのでしょうか。。 明日の朝までに教えていただければ、 すごくすごく助かります。。 すみませんが、宜しくお願いします。

  • SQLServer2000のselect文で

    SQLServer2000のselect文で select count(*) from Table を実行するのに30秒以上かかってしまいます。 データ数は100万件もありません。 全件数を取得するのになぜこんなにかかってしまうのでしょうか? 主キーはVarcharの50バイトです。 こんな単純な文でこれだけかかってしまうのは、 DBの設定が悪いのでしょうか? それともPCの性能が悪いのでしょうか?

  • SELECT文の結果を変数に・・・

    C#でOracleデータベースへ接続して データーベースにある全てのテーブル名を取得したいのですが、取得した一覧を変数にする方法が分かりません。 SQL文「SELECT * FROM TAB」で一覧を取得することはわかったのですが、この結果を変数に格納することができません。 何か方法をご存知のかたが居られましたらご教授願えないでしょうか?

  • PostgresSQL のSQL文について(SELECT) :2

    テーブル図があまりにもずれているため投稿しなおします。 PostgresであるSelect文がわかりません。 以下のテーブルより *KOUMOKU*[テーブル名] SUB1|SUB2|SUB3|SUB4|SUB5|ID_NAME A01  |    |    |    |   |大項目1 A01  |B01  |    |    |   |大項目2 A01  |B01  |C01  |    |   |大項目3 A01  |B01  |C01  |D01  |   |大項目4 大項目1~大項目4の値(ID_NAME)を一気に取得する SELECT文がわかりません。 「大項目1 大項目2 大項目3 大項目4」という検索結果を得たいです。 よろしくお願いいたします。

  • ある条件のSELECT文の作成について

    以下のSQLの作成で悩んでいます。 【内容】 抽出元テーブルの中で、あるコードが同じデータは、 ある項目を全て同じ値にして取得したい。 (例) ■抽出元テーブル コード SEQ FLG  1    1   1  1    2    1    3    2    1   0  2    2  2    3  3    1   1 コードは同じ物が1つ又は複数あります。 コードが同じ物にはSEQで番号が連番されます。 FLGの項目がありますが、SEQ=1のデータしか設定されていません。 ■求めたい結果 コード SEQ FLG  1    1   1  1    2   1    1    3   1  2    1   0  2    2   0  2    3   0  3    1   1 全てのデータでFLGを求めて取得します。 取得の仕方はコードが同じでSEQ=1の値を取ります。 抽出元テーブルと結果のデータ件数は同じになります。 抽出元テーブルと結果の違いは、FLGに値が埋まっているかどうかの違いのみです。 このテーブルのFLGはUPDATEする事は出来ません。 別表なども利用しないで、 selectのSQL文だけで対応したいです。 どのような方法で対応できるでしょうか? オラクルのバージョンは10gです。 よろしくお願い致します。

  • SELECT結果の16進表示の相違(SQLServer2005 vs 2000)

    SQLServer2000で項目値"123"のA項目をSELECTした結果をファイル出力した場合(SELECT A from テストテーブル) 処理結果ファイルを16進で表示すると ""31 32 33"" ですが SQLServer2005で同様に結果をファイル出力した場合、"31 00 32 00 33"のように1バイトごとにnull(""00"")が挿入されてしまいます。 この事象を回避する方法をご存じの方ご教示いただけないでしょうか?

  • PostgresSQL のSQL文について(SELECT)

    PostgresであるSelect文がわかりません。 以下のテーブルより *KOUMOKU*[テーブル名] SUB1|SUB2|SUB3|SUB4|SUB5|ID_NAME A01 | | | | |大項目1 A01 |B01 | | | |大項目2 A01 |B01 |C01 | | |大項目3 A01 |B01 |C01 |D01 | |大項目4 大項目1~大項目4の値(ID_NAME)を一気に取得する SELECT文がわかりません。 よろしくお願いいたします。

  • SELECT DISTINCT で順番指定。

    下記テーブルで登録NOの若い順に項目の種類分値をとりだしたいのですが どのようにSQLを書けばいいでしょうか。 テーブル 項目................|登録NO ---------------------------------------------------------------- オルタネータ................|TOUROKU00110 オルタネータ................|TOUROKU00111 オルタネータ................|TOUROKU00112 オルタネータ................|TOUROKU00113 ミッション.......................|TOUROKU00100 ミッション.......................|TOUROKU00101 イグニッションコイル|TOUROKU00099 イグニッションコイル|TOUROKU00098 抽出結果 イグニッションコイル|TOUROKU00098 ミッション.......................|TOUROKU00100 オルタネータ................|TOUROKU00110 環境 OS:Windows XP DB Microsoft Sqlserver

  • select文のWHERE句に関して

    SELECT文の質問になります。 店舗テーブルとメリットテーブルが存在し、それを紐付ける「店舗・メリット紐付けテーブル」が存在します。 店舗テーブル ・SHOP_ID  ・SHOP_NAME 特徴テーブル ・MERIT_ID ・MERIT_NAME 店舗・特徴紐付けテーブル ・SHOP_ID ・MERIT_ID 店舗・メリット紐付けテーブルの中身は以下になるとして SHOP_ID  MERIT_ID 1       1 1       2 2       2 2       3 3       1 3       2 1と2の「MERIT_ID」を"両方とも"保持している「SHOP_ID」を取得したいと思っております。 結果として、1と3の「SHOP_ID」を取得したいです。 どの用にすればよろしいでしょうか。 宜しくお願いします。

このQ&Aのポイント
  • 娘を無視する主人の問題に悩んでいます。娘は注意をしてもなかなか動こうとせず、主人は何回も注意しても変わらないと考え、娘を無視してしまいます。
  • 普段は仲良しですが、主人は段々とイライラして娘を無視するようになりました。私は常に娘に注意をしていますが、主人の考え方に疲れてしまいました。
  • 娘が悪いこともわかりますが、私は親としての役割だと思い、何度も注意をするべきだと考えています。皆さんはどう思われますか?
回答を見る