質問 |
||
| QNo.3891265 | SQLで別テーブルの参照 | |
|---|---|---|
| 質問者:titokani |
こんにちは。 PostgreSQL+Perl+DBIでCGIを書いています。 テーブルからデータを取得する場合なのですが、table1にはIDのみが登録されていて、table2には、そのIDに対する文字列が登録されているとします。 このような場合に、tableからIDを取得して、そのIDに対するtable2の文字列を一気に取得することは可能でしょうか? つまり、 $dbh=DBI->connect(〜); $sth=$dbi->prerare("SELECT id FROM table1 WHERE 〜;"); $sth->excecute(); $id=$sth->fetchrow; $sth->finish(); $sth=$dbi->prerare("SELECT str FROM table2 WHERE id=$id;"); $sth->excecute(); $str=$sth->fetchrow; $sth->finish(); $dbh->disconnect(); といった処理をこんな感じに一度に行いたいのです。 $dbh=DBI->connect(〜); $sth=$dbi->prerare("〜〜〜〜〜;"); $sth->excecute(); $str=$sth->fetchrow; $sth->finish(); $dbh->disconnect(); 可能かどうかもわからないのですが、なにか良い方法はありますでしょうか?よろしくお願いします。 |
|
困り度:
|
||
| 質問投稿日時: 08/03/24 19:31 |
||
回答良回答20pt |
|
| ANo.1 | 以下のような感じでテーブルを結合すればよいと思いますが。 SELECT table1.ID table2.NAME FROM table1 table2 WHERE table1.ID = table2.ID AND table1.ID=$id |
|---|---|
| 回答者:denbee | |
| 種類:回答 どんな人:経験者 自信:参考意見 |
|
| 回答日時: 08/03/24 19:35 |
|
| |
| この回答へのお礼 | ありがとうございます。大変参考になりました。 最終的には、このような形になりました。 SELECT table1.*,table2.name FROM table1 LEFT OUTER JOIN table2 ON table1.id=table2.id; |