- 締切済み
表結合について(postgresql)
大学で表結合というのを習ったはずなのですがよくわかりません。 たとえば「社員」という表があって、その属性として(社員id,名前,基本給)があるとします。 このとき、結合を用いて田中さんよりも基本給が多い社員の名前を出しなさいと言われたらどうすればよいのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- NOBNNN
- ベストアンサー率50% (93/186)
結合ということは2つ以上の表(TABLE)があって成立します。 ご質問では「社員」という表(TABLE)しかありません。 >>田中さんよりも基本給が多い社員の名前を出しなさい ということですからこの「田中」とういう人の社員IDがわかっている ことが前提になります。 ========================================================== 答え: 「田中」の社員IDが '042' だとすれば SELECT 社員.* from 社員 inner Join (SELECT * from 社員 where 社員id = '042' ) as TK_TBL On 社員.給与 > Tk_TBL.給与 ========================================================== でうまくゆくと思います。 結合の部分は inner join にあたります。 2つ目の表は副問い合わせとして別名の表を定義します。 それがTK_TBL です。 結合には幾つかの種類があります。 SQLについての構文は数学の集合で考えるとわかりやすいです。 ここでは説明を省きます。 他のサイト http://www.rfs.jp/sb/sql/04/03_4.html などほか 検索エンジン GOOGLE (http://www.google.co.jp) などで キーワード 「SQL 入門 結合」 と入力すればたくさんのサイトが検索できます。
お礼
ありがとうございます。 説明不足でした。上に挙げた例題ですが、相関名を用いて行うとの但し書きがついていました。 自分でいろいろとやってみて、副問い合わせを用いずに相関名を使って結合で問い合わせを行うことができました。 説明不足で本当に申し訳ありませんでした。ありがとうございました。