首页 > 解决方案 > 不显示表中的 INNER JOIN 列 - 没有任何错误

问题描述

我有三个表 1 和 2 是基本的,第三个与 1 和 2 有关系。我试图使用 WHERE 仅显示表 3 中的一些记录,但是我希望基本表中的值也与查询结果一起显示。

我试图使用内部连接(在 WHERE 之前),但只有 SELECT x, y FROM t3 WHERE 条件的结果;-> 此结果已正确显示但是我的到 INNER JOIN 行似乎被忽略了 - 没有错误,加入

SELECT komputery.nazwa, komputery.id FROM komputery
INNER JOIN system_op ON komputery.system_op = system_op.id
INNER JOIN sl_org ON komputery.lokalizacja = sl_org.id
WHERE system_op IN (SELECT id FROM system_op WHERE nazwa='Windows 7' AND architektura='x64') 
OR lokalizacja IN (SELECT id FROM sl_org WHERE nazwa='IT');

没有错误。 实际: 仅 SELECT x, y FROM t3 WHERE 显示条件 预期: 显示与 T3 相关的表中的值,例如如果我从 T3 中仅选择 windows 7 x64 PC - 我还希望显示 Windows 7 x64 (在基本表中)在 T3 的结果旁边(使用关系来获取 Windows 7 x64)

标签: postgresqlinner-joinwhere

解决方案


好的,我发现了问题所在。在 SELECT 之后,我没有从我加入的表中选择任何列。所以没有显示任何值:

SELECT komputery.nazwa, komputery.id, system_op.nazwa as system_operacyjny, system_op.architektura, sl_org.nazwa as lokalizacja FROM komputery
INNER JOIN system_op 
ON komputery.system_op = system_op.id
INNER JOIN sl_org 
ON komputery.lokalizacja = sl_org.id
WHERE system_op IN (SELECT id FROM system_op WHERE nazwa='Windows 7' AND architektura='x64') 
OR lokalizacja IN (SELECT id FROM sl_org WHERE nazwa='IT');

此代码正常工作。


推荐阅读