0

次のような 2 つのテーブルがあります。

テーブル名:users

emx  |   userid
---------------
1    |   1
2    |   2

と呼ばれる別のテーブルbodies

id   |   emx   |   text
--------------------------
1    |   1     |   Hello
2    |   2     |   How are you?

ご覧のとおり、bodys テーブルにはテーブルemxの ID 番号がありusersます。今、私が含むメッセージを取得したいときは、Helloそれを検索しbodiesて番号を取得しemx、その後、これらの emx 番号を使用してユーザー テーブルを取得します。だから、私はそれを見つけるために2つのSQLクエリを実行しています。

だから、私がやりたいのは、これを1つのSQLクエリで実現することだけです。

正しくないクエリをいくつか試しましたが、JOIN も試しました。まだ運がありません。本文テーブルに「Hello」が含まれているメッセージを含むユーザーテーブルを取得したいだけです。

注: PostgreSQL 9.1.3 を使用しています。

任意のアイデア/ヘルプをいただければ幸いです。

4

2 に答える 2

2
  1. テーブルの結合方法に関するドキュメントを読んでください。
  2. これを試して:
    SELECT u.emx, u.userid, b.id, b.text
      FROM bodies b
      JOIN users u USING (emx)
     WHERE b.text ~ 'Hello';
于 2012-05-01T10:28:35.507 に答える
1

これが私が結合を行う方法です。私は正確な封じ込めテストを省略しました。

SELECT users.userid 
FROM users JOIN bodies ON (users.emx = bodies.emx) 
WHERE ⌜true if bodies.text contains ?⌟
于 2012-05-01T10:28:26.903 に答える