ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

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;