0

我有两个这样的表:

表名:users

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

和另一张桌子叫bodies

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

如您所见,bodys 表有emx哪些是users表的 id 号。现在,当我想获取包含的消息时,Hello我只需搜索它bodies并获取emx数字,然后我获取带有这些 emx 数字的用户表。所以,我正在做 2 个 sql 查询来找到它。

所以,我想做的就是在 1 个 SQL 查询中实现这一点。

我尝试了一些不正确的查询,我也尝试了 JOIN。还没有运气。我只想获取用户表,其中消息在 body 表中包含“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 回答