PostgreSQL内部联接与WHERE子句联接

PostgreSQL内部联接与WHERE子句联接,postgresql,join,inner-join,Postgresql,Join,Inner Join,我认为内部连接等同于WHERE子句中的连接。当我使用WHERE子句进行join时,返回行。但如果我进行内部联接,则不会输出任何行。我得到的结果是没有匹配项。 是我弄错了,还是我做错了什么 这些连接等效吗 客栈加盟: account_move_reconcile_line_applied amrla INNER JOIN account_move_reconcile_line amrl ON (amrla.credit_line_id = amrl.id) INNER JOIN account_m

我认为内部连接等同于WHERE子句中的连接。当我使用WHERE子句进行join时,返回行。但如果我进行内部联接,则不会输出任何行。我得到的结果是没有匹配项。 是我弄错了,还是我做错了什么

这些连接等效吗

客栈加盟:

account_move_reconcile_line_applied amrla
INNER JOIN account_move_reconcile_line amrl ON (amrla.credit_line_id = amrl.id)
INNER JOIN account_move_reconcile amr ON (amrl.credit_reconcile_id = amr.id)
INNER JOIN account_move_line aml ON (aml.reconcile_partial_id = amr.id)
INNER JOIN res_partner rp ON (aml.partner_id = rp.id)
在WHERE条款中:

amrla.credit_line_id = amrl.id
and amrl.partner_id = rp.id
and amrl.credit_reconcile_id = amr.id
and aml.reconcile_id = amr.id
中有错误的ID:

INNER JOIN account_move_line aml ON (aml.reconcile_partial_id = amr.id)

它应该是协调id,而不是协调部分id。

检查查询计划,它们可能是相同的。对于这个问题,很抱歉。。我没有看到在内部连接中我使用了不同的ID。
和aml.conference\u ID=amr.ID
aml.conference\u partial\u ID=amr.ID
不一样,而且
aml.partner\u ID=rp.ID
amrl.partner\u ID=rp.ID
也不一样。他们应该匹配吗?再次抱歉,我在评论中说我错过了。一切都好,谢谢你的跟进。顺便说一句,有时候通过查看
explain
计划更容易发现这类事情。