SQL Server:将表与自身进行比较

时间:2018-04-22 18:48:24

标签: sql-server

我继续获得运行查询时返回的相同值,我试图找到商店ID对,他们的商店类型是相同的。表名为STORE

它应该只返回商店ID 412,364和428,因为它们具有相同的商店类型,但它返回所有值。

到目前为止我的代码:

SELECT 
    B.STORE_ID, C.STORE ID  
FROM 
    STORE B 
INNER JOIN 
    STORE C ON B.STORE_ID = C.STORE_ID
WHERE 
    B.STORE_TYPE = C.STORE_TYPE 

表格示例:

STORE_ID    STORE_TYPE 
---------------------------
412           1
358           2
364           1
428           1
134           4
156           6
136           5

请放心,这是我第一次在本网站上寻求帮助。

1 个答案:

答案 0 :(得分:3)

  

商店ID对是他们的商店类型是相同的。

加入类型,查找不同的ID:

SELECT 
    B.STORE_ID, C.STORE ID  
FROM 
    STORE B 
INNER JOIN 
    STORE C ON B.STORE_TYPE = C.STORE_TYPE 
WHERE 
    B.STORE_ID != C.STORE_ID