• ベストアンサー

SQLの書き方について教えてください。

accessについて。 シートの中に列名name、列名friendnameがあります。 name,friendname aaaa,bbbb bbbb,cccc cccc,aaaa dddd,aaaa eeee,bbbb ffff,eeee ほしいデータは aaaa,bbbb,cccc bbbb,cccc,aaaa cccc,aaaa,bbbb dddd,aaaa,bbbb eeee,bbbb,cccc ffff,eeee,bbbb と友達の友達の名前がほしいのです。 SQLの書き方を教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

テーブル名を「TF」と仮定します。 また、name に重複が無いものとします。 クエリのSQLビューで以下を記述します。 SELECT Q1.name, Q1.friendname, Q2.friendname AS friendname2 FROM TF AS Q1 LEFT JOIN TF AS Q2 ON Q1.friendname = Q2.name; この表示結果は以下となります。 name  friendname  friendname2 aaaa  bbbb  cccc bbbb  cccc  aaaa cccc  aaaa  bbbb dddd  aaaa  bbbb eeee  bbbb  cccc ffff  eeee  bbbb

dvfvffvfdfjejkd
質問者

補足

回答有難うございます。出来ました。嬉しいです。 一応友達の友達の友達のSQLを載せておきます。 SELECT T1.name,T1.friendname,T2.friendname,T3.friendname FROM (friend T1 INNER JOIN friend T2 ON T1.friendname=T2.name ) INNER JOIN friend T3 ON T2.friendname=T3.name order by T1.name,T1.friendname,T2.friendname ; 合ってますでしょうか? 有難うございました。

その他の回答 (2)

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.3

#1です 投稿直前に補足が見えたのですが、読んでません。 INNER JOIN が正しいのであれば、それはそうかもしれません。 LEFT JOIN としたのは、以下の様に friendname に記述された方が name に居なかった時のことを考えただけでした。 元テーブルが以下だった時 name  friendname aaaa  bbbb bbbb  cccc cccc  aaaa dddd  gggg eeee  bbbb ffff  eeee #1での表示結果は name  friendname  friendname2 aaaa  bbbb  cccc bbbb  cccc  aaaa cccc  aaaa  bbbb dddd  gggg   eeee  bbbb  cccc ffff  eeee  bbbb となるだけです。

回答No.2

SELECT T1.name,T1.friendname,T2.friendname FROM テーブル名 T1 INNER JOIN テーブル名 T2 ON T1.friendname=T2.name ORDER BY 1 が一般的なSQL文です。

関連するQ&A

  • SQLでの集計

    下記の様に、「複数のitemを買っているuserと購入されたitem」のテーブルと、 user item ---------------------------------- 田中 AAAA 田中 CCCC 田中 EEEE 北野 DDDD 北野 BBBB 北野 AAAA 小堺 CCCC 小堺 EEEE 松本 EEEE 松本 KKKK 松本 CCCC 松本 DDDD 浜田 BBBB 浜田 DDDD 下記の様な IDに紐付いた 「item」のテーブルから、 ID  item ---------------------------------- 1   AAAA 2   BBBB 3   CCCC 4   DDDD 5   EEEE 下記の様に各itemと各itemを買った場合に一緒に買われるitemの一覧を結果 として表示させたいのですが、クエリの作り方が思い浮かばず、困っています。 ※)可能であれば、買われたitemを表示する際にはbuy1から(左側から)同時購入 回数の多いitemを重複せずに並べて表示したい ID  item  buy1  buy3  buy4  buy5  buy6・・・・ ---------------------------------- 1  AAAA CCCC BBBB DDDD EEEE 2  BBBB DDDD AAAA 3  CCCC AAAA EEEE DDDD KKKKK 4  DDDD AAAA BBBB CCCC EEEE 5  EEEE AAAA CCCC KKKKK 尚、IDと紐付いているitem数は決まっていますが、買われるitemの種類は上記 の様にIDが1~5だけではなく、集計してみないと判らない状況です。 今の所、SQLはACCESS(2003)上にて手打ちしています。 以上、ご教示のほど、宜しくお願い致します。

  • UNIXで文字列分割

    UNIXでマルチバイトの文字列で分割したいです。 例) aaaa bbbb cccc dddd eeee ffff ↓ [bbbb]で分割 [1]aaaa [2] cccc dddd eeee ffff できればawkで処理をしたいと考えています。

  • access で 方法を教えてください。

    access で 方法を教えてください。 テーブルは セミコロン区切りで、区切られて表示されています (テーブル例)  1 aaaa;bbbb;cccc;dddd;eeee;ffff 2000byte 2 aaaa 300byte 3 bbbb;cccc;ffff 3000byte 4 ffff;dddd 120byte このセミコロン区切りの区切られたデータの 「件数」と「バイト」を表で表示させる方法を教えて欲しいのです。 上記テーブル例を使用しての(抽出例)  抽出条件    ↓   aaaa 2件 2500byte   bbbb 2件 5000byte  cccc 2件 5000byte   dddd 2件 2120byte   eeee 1件 2000byte   ffff 3件 5120byte 宜しくお願いします。

  • wordの段落を通番で振りなおしたい

    word2003で段落を設定した文書があるんですが、番号を振りなおしてつけているため、以下のようになっております。 1.aaaa 2.bbbb 3.cccc 1.dddd 2.eeee 1.ffff 2.gggg 3.hhhh これを以下のような通しの段落番号に変換することは可能でしょうか? 1.aaaa 2.bbbb 3.cccc 4.dddd 5.eeee 6.ffff 7.gggg 8.hhhh 各段落の1.を”自動的に番号を振る”を選択すればできると思いますが、数が多いため簡単な方法を探しております。 よろしくお願いいたします。

  • Access Union について

    下記2テーブルがあります。 テーブル1 品番   1月合計 AAAA   1111 BBBB   2222 CCCC   1122 EEEE   3211 テーブル2 品番   2月合計 AAAA   1211 BBBB   3222 CCCC   1522 DDDD   2223 UNIONのSQL文で下記のような結果を得たいです。 品番   1月合計  2月合計 AAAA   1111    1211 BBBB   2222    3222 CCCC   1122    1522 DDDD         2223 EEEE   3211 SQL文をどのように書いたらいいですか。ご教授,お願い致します。

  • エクセルで教えて下さい。

    エクセルで教えて下さい。 オートフィルタ、ピボットテーブル以外で関数などで教えて下さい。 A列に大量の文字列があり重複したりしてます。 そこで、 B列にはA列にある大量の文字列を重複なしで表示させたいと思ってます。 例えば A列 B列 AAAA AAAA BBBB BBBB AAAA CCCC CCCC DDDD DDDD EEEE DDDD FFFF EEEE FFFF EEEE AAAA みたいな感じです。A列は編集可能でQQQQを追加すれば自動でB列にも表示させたいです。 このようなことを簡単にできますでしょうか? 宜しくお願いします。

  • SQLでご質問があります

    SQL初心者です、、 SQLについてご教授ください。 ※ACCESSですが、他DB用でもこちらで変更します。 以下のデータがあるとして、同じ「コード」が2件以上あるもので 「カラム1」が複数(2種類以上)あるものを抽出したいと考えております。 ※同じ「コード」2件以上→コードが'0001','0003' ※「カラム1」が複数もの→コードが'0003'(bbbb,eeee,ffffの3種類ある) コード,カラム1 0001,aaaa 0001,aaaa 0002,aaaa 0003,bbbb 0003,eeee 0003,ffff の場合ですと結果として以下3レコードを出力したいです。 コード,カラム1 0003,bbbb 0003,eeee 0003,ffff 以上です。よろしくお願いします。

  • 優先順位を決めて、そこからランダムに選んでいく方法

    MySQLバージョン4.1.16を使用しています。 次のような、priority(1が最も優先順位が高い)を カラムに持つテーブル「users」で、flagが1を条件として priorityが1から順番にランダムに1つだけ選びたいのです。 つまりこの場合、初めは priorityが1の「bbbb」行と「dddd」行からランダムに選ぶのですが、 flagが共に0なので条件に合わないので選ぶことはできません。 次に、priorityが2の「cccc」「eeee」「ffff」行のflagを調べて flagが1の「cccc」「ffff」行の2つからランダムに選ぶことになります。 このようなSQL文はどのような記述になるのでしょうか? テーブル「users」 +----------+---------+---------+ |  user_id  | priority |   flag  | +----------+---------+---------+ |  aaaa   |   3   |   1   | +----------+---------+---------+ |  bbbb   |   1   |   0   | +----------+---------+---------+ |  cccc   |   2   |   1   | +----------+---------+---------+ |  dddd   |   1   |   0   | +----------+---------+---------+ |  eeee   |   2   |   0   | +----------+---------+---------+ |  ffff    |   2   |   1   | +----------+---------+---------+

    • ベストアンサー
    • MySQL
  • VBScript(vbs)での行の取得について

    あるテキストの中に空行をはさんで文字列がある時に"ABCD"の文字列を含む場合はABCDを含むひとまとまりだけを取得したいのですがその方法について教えてください。 [テキスト] AAAA BBBB CCCC DDDD EEEE ABCD FFFF GGGG HHHH [取得したい部分] DDDD EEEE ABCD FFFF

  • Excel チェックボックスのコピー、チェックをONにすると対象セルの文字の色が変わる方法

    下記の様にチェックボックス1をONにするとチェックのみ、チェックボックス2をONにすると対象セル(3つのセルAAAA、BBBB、CCCC)の文字の色が変わる様にしたいのですが、どうするのが早く、多く複製出来る方法はありませんか? 個々にチェックボックスを作成して、条件付書式などで作成は可能ですが、下記の様(DDDD、EEEE、FFFF・・・・)に複数作りたいので条件付書式では大変なので何か方法はありませんか。 VBAで作ると楽にいけると思うのですが知識不足で・・・。 ご教授願います。宜しくお願いします。 AAAA    BBBB  1□  2□ CCCC DDDD EEEE  1□  2□ FFFF ・ ・    1□  2□ ・ ・ ・    1□  2□ ・