Postgresql 使用另一个表获取一个表”;条件“;

Postgresql 使用另一个表获取一个表”;条件“;,postgresql,select,conditional-statements,Postgresql,Select,Conditional Statements,我有两张这样的桌子: 表名:用户 emx | userid --------------- 1 | 1 2 | 2 和另一个名为bodies id | emx | text -------------------------- 1 | 1 | Hello 2 | 2 | How are you? 正如您所看到的,bodys表有emx,这是用户的id号。现在,当我想获取包含Hello的消息时,我只需在主体上搜

我有两张这样的桌子:

表名:
用户

emx  |   userid
---------------
1    |   1
2    |   2
和另一个名为
bodies

id   |   emx   |   text
--------------------------
1    |   1     |   Hello
2    |   2     |   How are you?
正如您所看到的,bodys表有
emx
,这是
用户的id号。现在,当我想获取包含
Hello
的消息时,我只需在
主体上搜索它,然后获取
emx
编号,然后获取带有这些emx编号的用户表。因此,我将执行两个sql查询来查找它

所以,我只想在1SQL查询中实现这一点

我尝试了一些不正确的查询,也尝试了JOIN。还没有运气。我只想在Bodys表中获取包含消息“Hello”的users表

注意:我使用的是PostgreSQL 9.1.3


非常感谢您的任何想法/帮助。

这就是我加入的方式。我遗漏了确切的安全壳测试

SELECT users.userid 
FROM users JOIN bodies ON (users.emx = bodies.emx) 
WHERE ⌜true if bodies.text contains ?⌟

这就是我加入的方式。我遗漏了确切的安全壳测试

SELECT users.userid 
FROM users JOIN bodies ON (users.emx = bodies.emx) 
WHERE ⌜true if bodies.text contains ?⌟
  • 继续阅读文档
  • 试试这个:
  • 选择u.emx、u.userid、b.id、b.text
    来自尸体b
    使用(emx)加入用户
    其中b.text~‘你好’;
    
  • 继续阅读文档
  • 试试这个:
  • 选择u.emx、u.userid、b.id、b.text
    来自尸体b
    使用(emx)加入用户
    其中b.text~‘你好’;
    
    您应该显示您使用的SQL查询。你试过的那一个不起作用。我删除了它,但很快它就是
    SELECT*FROM x INNER JOIN y ON a=b,其中x.a=1
    。内部联接导致了此错误。这就是为什么我得到了意想不到的结果。我将尝试回答(您和vyegorov的)。您应该显示您使用的SQL查询。你试过的那一个不起作用。我删除了它,但很快它就是
    SELECT*FROM x INNER JOIN y ON a=b,其中x.a=1
    。内部联接导致了此错误。这就是为什么我得到了意想不到的结果。我会试试答案(你和维耶戈罗夫的)。老兄,这是个打字错误!我怎么会错过呢。它起作用了——就像人们想象的那样,它是一个打字错误!我怎么会错过呢。它起了作用——正如人们所认为的那样-