Sql 查询不同表中的数据
我在我的postgres数据库上使用了如下查询:Sql 查询不同表中的数据,sql,postgresql,Sql,Postgresql,我在我的postgres数据库上使用了如下查询: SELECT TableA.id FROM TableA , TableB WHERE TableA.id = 100; 每个TableA.id都是唯一的。这是一个自动增量,我得到的结果不止一个。我在这里遗漏了什么吗?您正在进行交叉连接-有效地将表B中的每一行与表a中的单行进行对比。如果您也从TableB中选择了一些内容,这将更加明显:您当前没有从TableB中选择任何内容这一事实不会阻止TableA、TableB对在投影之前成为联接的结果。您
SELECT TableA.id FROM TableA , TableB WHERE TableA.id = 100;
每个TableA.id都是唯一的。这是一个自动增量,我得到的结果不止一个。我在这里遗漏了什么吗?您正在进行交叉连接-有效地将表B中的每一行与表a中的单行进行对比。如果您也从TableB中选择了一些内容,这将更加明显:您当前没有从TableB中选择任何内容这一事实不会阻止TableA、TableB对在投影之前成为联接的结果。您需要联接:
SELECT TableA.ID from TableA
INNER JOIN TableB
ON TableB.TableAID = TableA.ID
WHERE TableA.ID = 100
表A和表B之间的关系是什么 你可能需要这样做 其中TableA.id=100
TableB.TableA_Id=TableA.Id您从TableA得到一行,但从TableB得到所有行。也许你的意思是:
SELECT TableA.id FROM TableA, TableB WHERE TableA.id=TableB.id AND TableA.id = 100
在where子句之前需要连接:
INNER JOIN TableB ON TableA.Id = TableB.Id