一张表说table1有3列。 假设第三列是城市。 对于城市,主表是city_master。 我想选择通常可用于所有城市的表格记录
例如:
City_master contain C1 to C4 cities
表1如下
Col1 cOl2 col3_city
ABC 123 C1
ABC 123 C2
ABC 123 C3
ABC 123 C4
ABC 211 C1
ABC 211 C1
ABC 213 C4
这里的预期应该是前4行(意味着col1和col2通常出现在所有城市)
答案 0 :(得分:3)
首先,您应该使用GROUP BY进行查询,并找到所有ColI,Col2,其中COUNT个不同的城市与City_master
表中所有城市的数量相同。然后只需使用Table1
SELECT *
FROM TABLE1 as T1
JOIN
(
SELECT Col1,Col2 FROM Table1
GROUP BY Col1,Col2
HAVING COUNT(DISTINCT col3_city) = (SELECT COUNT(*) FROM City_master)
) as T2 ON T1.Col1=T2.Col1 AND T1.Col2=T2.Col2
答案 1 :(得分:-1)
select col1, col2
from table1
group by col1, col2
having count(distinct col3_city) = (select count(distinct city) from table_city)