我有两张这样的表:
表名:users
emx | userid
---------------
1 | 1
2 | 2
和另一个名为bodies
id | emx | text
--------------------------
1 | 1 | Hello
2 | 2 | How are you?
如您所见,body表的emx
是users
表的id号。现在,当我想要获取包含Hello
的消息时,我只需在bodies
上搜索并获取emx
个数字,之后我会使用这些emx数字获取用户表。所以,我正在做2个SQL查询来找到它。
所以,我想做的就是在1个SQL查询中实现这一点。
我尝试了一些不正确的查询,我也试过JOIN。没有运气了。我只想获取用户表,其中包含在body表中包含'Hello'的消息。
注意:我使用的是PostgreSQL 9.1.3。
感谢任何想法/帮助。
答案 0 :(得分:2)
SELECT u.emx, u.userid, b.id, b.text
FROM bodies b
JOIN users u USING (emx)
WHERE b.text ~ 'Hello';
答案 1 :(得分:1)
这就是我加入的方式。我遗漏了确切的收容测试。
SELECT users.userid
FROM users JOIN bodies ON (users.emx = bodies.emx)
WHERE ⌜true if bodies.text contains ?⌟