我的目标
我正在尝试对表A和表B进行联接。
我想列出表A中每条街道的所有居民。但是,我不想列出表A中的所有人,只列出表中每条街道的居民。 B。
我尝试过的事情
表A
Fred 123 Fake Street
Bob 456 Any Street
Alice 456 Any Street
Jenny 879 Spring Street
Cassie 879 Spring Street
Spinner 227 Nothing Street
Ranger 227 Nothing Street
Swifty 227 Nothing Street
Loggy 821 Victory Way
表B
227 Nothing Street
456 Any Street
查询结果(某种类型的联接)
Spinner 227 Nothing Street
Ranger 227 Nothing Street
Swifty 227 Nothing Street
Bob 456 Any Street
Alice 456 Any Street
答案 0 :(得分:2)
INNER JOIN
可以正常工作:
SELECT a.*
FROM tableA a
JOIN tableB b ON b.address = a.address
输出:
name address
Bob 456 Any Street
Alice 456 Any Street
Spinner 227 Nothing Street
Ranger 227 Nothing Street
Swifty 227 Nothing Street
答案 1 :(得分:1)
您似乎想要:
select a.*
from a
where exists (select 1 from b where b.address = a.address);
您可以使用inner join
做同样的事情。我不知道“ A和B上的内部联接:仅返回每个地址的第一个人”的意思。那简直是不正确的。