我在postgres数据库中使用这样的查询:
SELECT TableA.id FROM TableA , TableB WHERE TableA.id = 100;
每个TableA.id都是唯一的(它是一个自动增量),我得到的结果超过1.我在这里错过了什么吗?
您需要加入:
SELECT TableA.ID from TableA INNER JOIN TableB ON TableB.TableAID = TableA.ID WHERE TableA.ID = 100
您正在进行交叉连接 - 有效地将TableB中的每一行与TableA中的单行对齐.如果你从TableB中选择一些东西,这将更加明显:)你当前没有从TableB中选择任何东西这一事实不会阻止(TableA,TableB)对成为连接的结果,在投影之前.