如何获取customers与suppliers表City列中的共同城市值?
检索两张表中共同存在的城市名称
以下是几种常用的实现方式:
方法1:使用INNER JOIN
通过内连接匹配两张表的相同城市,用DISTINCT避免单表内重复城市导致结果冗余:
SELECT DISTINCT c.City FROM customers c INNER JOIN suppliers s ON c.City = s.City;
方法2:使用IN子查询
从customers表中筛选出存在于suppliers表中的城市,同样用DISTINCT去重:
SELECT DISTINCT City FROM customers WHERE City IN (SELECT City FROM suppliers);
方法3:使用INTERSECT(适用于SQL Server、PostgreSQL等支持该语法的数据库)
INTERSECT直接返回两个查询结果的交集,自动完成去重:
SELECT City FROM customers INTERSECT SELECT City FROM suppliers;
额外说明
如果城市名称存在大小写差异、首尾空格等格式问题,可先统一格式再匹配,示例:
SELECT DISTINCT LTRIM(RTRIM(LOWER(c.City))) AS City FROM customers c INNER JOIN suppliers s ON LTRIM(RTRIM(LOWER(c.City))) = LTRIM(RTRIM(LOWER(s.City)));
内容的提问来源于stack exchange,提问作者Aamir Mohiuddin
相关产品推荐
相关产品推荐

