1

我正在使用 Postgresql,需要像这样查询两个表:

表格1

  ID     Bill  
  A       1
  B       2
  B       3
  C       4

表2

 ID  
  A     
  B

我想要一个包含 Table1 中所有列的表,但只保留 Table2 中可用 ID 的记录(在本例中为 A 和 B)。此外,Table2 的 ID 是唯一的。

  ID     Bill  
  A       1
  B       2
  B       3

我应该使用哪个连接,或者我是否可以使用 WHERE 语句?

谢谢!

4

2 回答 2

5
SELECT Table1.*
FROM Table1
  INNER JOIN Table2 USING (ID); 

或者

SELECT * 
FROM Table1
WHERE ID IN (SELECT ID FROM Table2);

但出于性能原因,第一个更好。

于 2013-06-07T20:59:37.103 回答
0
SELECT * 
FROM Table1
WHERE EXISTS (
   SELECT 1 FROM Table2 WHERE Table2.ID = Table1.ID LIMIT 1
)
于 2013-06-07T20:42:10.380 回答