我正在使用Postgresql,需要查询两个表:
表1
ID Bill
A 1
B 2
B 3
C 4
表2
ID
A
B
我想要一个包含Table1中所有列的表,但只保留表2中可用ID的记录(在本例中为A和B)。此外,Table2的ID是唯一的。
ID Bill
A 1
B 2
B 3
我应该使用哪种连接,或者我可以使用WHERE语句?
谢谢!
答案 0 :(得分:4)
SELECT Table1.*
FROM Table1
INNER JOIN Table2 USING (ID);
或
SELECT *
FROM Table1
WHERE ID IN (SELECT ID FROM Table2);
但第一个因性能原因更好。
答案 1 :(得分:0)
SELECT *
FROM Table1
WHERE EXISTS (
SELECT 1 FROM Table2 WHERE Table2.ID = Table1.ID LIMIT 1
)