查询来自不同表的数据

Moh*_*nka 0 sql postgresql

我在postgres数据库中使用这样的查询:

SELECT TableA.id FROM TableA , TableB WHERE TableA.id = 100;
Run Code Online (Sandbox Code Playgroud)

每个TableA.id都是唯一的(它是一个自动增量),我得到的结果超过1.我在这里错过了什么吗?

Ben*_*voy 7

您需要加入:

SELECT TableA.ID from TableA
INNER JOIN TableB 
ON TableB.TableAID = TableA.ID 
WHERE TableA.ID = 100
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 6

您正在进行交叉连接 - 有效地将TableB中的每一行与TableA中的单行对齐.如果你从TableB中选择一些东西,这将更加明显:)你当前没有从TableB中选择任何东西这一事实不会阻止(TableA,TableB)对成为连接的结果,在投影之前.