• ベストアンサー

複数のテーブルの値を取り出す方法

今Postgres でCGIと連携させたのを作っているのですが、 同じデータベースの複数のテーブルから、同じ列を取り出すときはどうしたらいいのでしょうか? 一つ目のテーブル   二つ目のテーブル id|name        id|name 1 |sakura       1|inu 2 |kosumosu     2|neko このなかの、nameだけ取り出したいです。 よろしくお願いします。

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

  • ベストアンサー
  • herencia
  • ベストアンサー率56% (120/211)
回答No.1

union allを使うと、2つの問い合わせ結果を同時に取得できます。 select name from テーブル1 union all select name from テーブル2 ; 詳しくは参考URLを参照してください。

参考URL:
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/psql_k11.htm
kachohugetsu
質問者

お礼

できました!!感動しました!! ありがとうございます。

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

関連するQ&A

  • 複数テーブルをまとめてソート

    たとえば次のような、都道府県ごとのテーブルがあり、 ID、名前、得点の列があるとします。 テーブル1(テーブル名:tokyo) ID NAME SCORE 1 yamada 89 2 tanaka 45 テーブル2(テーブル名:osaka) ID NAME SCORE 1 sato 65 2 suzuki 22 これらのテーブルをまとめて、全国で得点が上位順に並べたいと 思っております。また、結果にはどのテーブルに所属するものかを 判別する列を追加したいのですが、どういう文を記述したらよいのでしょうか? 望みの結果は次のようなものです。 NAME SCORE TABLE_NAME yamada 89 tokyo sato 65 osaka tanaka 45 tokyo suzuki 22 osaka よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 複数のテーブルから値を取得したい

    とあるデータベース(mysql)に以下の2つのテーブルがあります。(【テーブル名】カラム名となっています) 【ブログ管理テーブル】 ブログID ブログカテゴリ ブログサイト名 ブログサイトURL  【記事管理テーブル】 記事タイトル 記事URL 記事フィード この2つのテーブルから次のような値を取り出したいと思っています。 ブログカテゴリ 記事タイトル 記事URL 記事フィード 複数のテーブルから値を取り出すには、テーブル同士を結合しないといけないということが分かり結合させてみたのですが、なぜか取り出すことができません・・・しかも、記事が重複して表示されてしまう・・・ 一体どのようなプログラムが必要でしょうか? 以上よろしくお願いします。

  • <ACCESS>別テーブルのレコードのテキストデータが中に含まれるレコードを抽出する方法を教えてください

    勉強不測で大変悩んでいます。お分かりになる方教えてください。 A(マスタ_登録済)とB(マスタ_仮登録)という2つのテーブルがあり、それぞれに「アカウント」(テキスト型)というフィールドが存在しています。 Bに存在する全レコードのいづれかの「アカウント」フィールドに入力されている文字列が文字列中に含まれているAのレコードの一覧を出力したいのですが、どうしたらできるでしょうか。 たとえば、 [A] inu inushiba inupo neko nekotama nekoshiro [B] inu nekota とレコードがそれぞれ存在していた場合、 出力したいレコードは inu inushiba inupo nekotama となります。 よろしくお願いいたします。

  • 複数テーブルからのデータ参照

    mysqlを使用してCGIを作成しています。 下のような3つのテーブルがあると想定します。 ユーザマスタ +------+-------+ |U_ID  |U_NAME| +------+-------+ |1    |hoshino| +------+-------+ |2    |irabu | +------+-------+ |3    |imaoka | +------+-------+ 商品予約テーブル +-------+--------------+ |Y_ID  |U_ID(予約者) | +-------+--------------+ |101  |1       | +-------+--------------+ |102  |3       | +-------+--------------+ 出庫テーブル(予約テーブルのデータを元に出庫を行う) +-------+-------------------+-------+ |S_ID  |U_ID(出庫者) |Y_ID | +-------+-------------------+-------+ |201  |1          |102  | +-------+-------------------+-------+ |202  |2          |101  | +-------+-------------------+-------+ この3つのテーブルから以下のようなデータを 1回の問い合わせで取得できますでしょうか? +-------+--------------+-------+--------------+ |S_ID  |U_NAME(出庫者)|Y_ID |U_NAME(予約者) | +-------+--------------+-------+--------------+ |201  |hoshino    |102  |imaoka     | +-------+--------------+-------+--------------+ |202  |irabu     |101  |hoshino    | +-------+--------------+-------+--------------+ 商品予約テーブルと出庫テーブルがそれぞれ持つU_IDで それぞれ別のユーザ名を取得することができるかどうかが どうしてもわからなくて困っています。。。 どなたか方法をご存知でしたら教えてください。 よろしくお願いします。m(__)m テーブルの書き方が見にくくてすみません。。。

  • MySQL: 複数テーブルのcount

    複数テーブルの総行数(count値)を取得したいのですが、下記だとテーブルA,B,Cの結果が バラバラに出力されてしまいます。 【入力条件】 mysql> select COUNT(*) AS 列ID from テーブルA      union all      select COUNT(*) AS 列ID from テーブルB      union all      select COUNT(*) AS 列ID from テーブルC; 【出力結果】       +-----+       | 列_ID |       +-----+       |  1  | ←テーブルAの合計:行数       |  2  | ←テーブルBの合計:行数       |  3  | ←テーブルCの合計:行数       +-----+ 総行数:6を一発で取得するには、どのようにしたらよろしいのでしょうか? 大変恐縮ですが、ご教授よろしくお願いいたいます。 <<MySQLのverは5,5です。

    • ベストアンサー
    • MySQL
  • 結果にテーブル上存在しない列&値をつけたい。

    SELECT ID, NAME FROM TEST たとえば上記の結果で ID NAME 1 'A' 2 'B' 3 'C' 4 'D' 5 'E' と返ってくるとします。 これにテーブルには存在しない列をつけて、かつ、 こちらで指定した値を入れたいのですが可能でしょうか。 ID NAME VALUE 1 'A' 'あ' 2 'B' 'い' 3 'C' 'う' 4 'D' 'え' 5 'E' 'お' こうしたいのです。 SELECT ID, NAME, 'あ' AS VALUE FROM TEST これだと全て「あ」になってしまいますし…。 可能であればご教授いただけないでしょうか。

  • IDENTITY列の複数テーブルへのINSERT

    テーブルAへINSERTをした場合のIDENTITY列の値を 同じトランザクション内で テーブルBの別のフィールドへINSERTしたいのですが、 どのようにSQLを書けばよいのか、困っています。 どうか、ご教示お願い致します。 INSERT INTOTABLE_A (NAME_A) VALUES ('あいうえお') ↓ INSERT INTOTABLE_A (A_ID,NAME_B) VALUES (取得したA_ID, 'さしす') INSERT INTOTABLE_A (NAME_A) VALUES ('かきくけこ') ↓ INSERT INTOTABLE_A (A_ID,NAME_B) VALUES (取得したA_ID, 'たちつ') INSERT INTOTABLE_A (NAME_A) VALUES ('さしすせそ') ↓ INSERT INTOTABLE_A (A_ID,NAME_B) VALUES (取得したA_ID, 'なにぬ') TABLE_A ID NAME_A 5  'あいうえお' 6  'かきくけこ' 7  'さしすせそ' TABLE_B ID A_ID NAME_B 1  5  'さしす' 2  6  'たちつ' 3  7  'なにぬ'

  • MySQLで複数のテーブルを相互に連携させてやれることを教えてください。

    PHPとMySQLを勉強しています。 以下のサイトで「たいていは、複数のテーブルを作り、それらを相互に連携(リレーション)させて、1つのデータベースを構築します。」と書いてありますが、具体的にどのような感じなのか教えてください。 http://y-kit.jp/saba/xp/mysqltry2.htm 個人的には、例えば郵便番号を検索できるサイトを制作するなら、ひとつのテーブルにまとめた方が扱いやすいのではないかと思うのですが……。それとも、もっと複雑なデータを扱う場合に、複数のテーブルで管理するのでしょうか?

    • ベストアンサー
    • PHP
  • 複数のテーブルから値を合計出力するSQLについて

    複数のテーブルから値を合計出力するSQLについて 以下の様な3つのテーブルがあり、それぞれのテーブルから値を合計した結果を取得したいと思っております。 この場合のSQL文をご教授いただけないでしょうか? 拙い説明でお分かりに難いかと思いますが、何卒、宜しくお願いします。 ●テーブル t1(テーブル1) id, 会員ID, 日付, 金額 t2(テーブル2) id, 会員ID, 日付, 金額 t3(テーブル3) id, 会員ID, 日付, 金額 ●期待する結果 上記、テーブル内の会員ID、日付が同じものの金額を合計して取得。(1行で出力) いずれかのテーブルに「会員ID」が一つしか存在しない場合も、「日付」、「金額」を取得して「合計金額」に反映。 もし、各テーブル、レコードの「金額」が「0」または「null」の場合は「0」として処理する。 ●期待出力結果イメージ 会員ID | 日付 | 合計金額 | -------------------------------- m001 | 2011/07/20 | 1500 | -------------------------------- m001 | 2011/06/10 | 2000 | -------------------------------- m002 | 2011/06/05 | 1000 | -------------------------------- m003 | 2011/05/25 | 0 | -------------------------------- m001 | 2011/03/05 | 3000 | ※「合計金額」は、「t1(テーブル1)」~「t3(テーブル3)」の中に含まれていた金額の合計。

    • ベストアンサー
    • MySQL
  • 複数のデータベースを使う場合

    php4 + MYSQL4.0.2で作業しています。 1つのサーバーにある、複数のデータベースに接続する方法を教えてください。 DB1:テーブルhoge(ID、name) DB2:テーブルhogehoge(ID, hogeID, comment) このような場合、データベースが全てDB1に入っているとすれば、 $con = mysql_connect(host, user, pass); sql="SELECT name, comment" . " FROM hogehoge INNER JOIN hoge ON hogehoge.hogeID = hoge.ID"; $rst = mysql_db_query(DB1, $sql, $con); $col = mysql_fetch_array($rst); print($col['name'] . $col['comment']); となりますが、 テーブルhogeとhogehogeが、異なるデータベースに存在する場合はどのようにすればよいのでしょうか? 以上、よろしくお願いいたします。

    • ベストアンサー
    • MySQL
0570を逃れたい、軽減したい
このQ&Aのポイント
  • 安心サポートを受けたいが、0570だと課金されるため通話料固定のプランを利用している。
  • 0570の利用がもったいないと感じているため、軽減する方法を知りたい。
  • ESETセキュリティ ソフトウェア シリーズについての質問。
回答を見る