使用相同子查询多次改进WHERE子句的查询

时间:2010-10-21 06:16:19

标签: sql

我有一个SQL查询,我现在无法改进。它有效,但有点难看。

我想要获取:

  • 表A中的id
  • 表B中的名字

使用WHERE子句,该子句本身从另一个SQL查询中获取值。

我想用一个实例替换用于WHERE子句的此SQL查询的以下两个实例:

SELECT intImageGalleryID FROM tblEPiServerCommunityImageGalleryImage
WHERE intID = 123123

怎么做?

使用SQL Server。

这是完整的SQL查询:

SELECT intID,   
        (SELECT strName
        FROM tblEPiServerCommunityImageGallery
        WHERE intID = 
            (SELECT intImageGalleryID
            FROM tblEPiServerCommunityImageGalleryImage
            WHERE intID = 123123)
            ) as name   
FROM tblEPiServerCommunityClub
    WHERE intImageGalleryID =   
        (SELECT intImageGalleryID
        FROM tblEPiServerCommunityImageGalleryImage
        WHERE intID = 123123)

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以尝试以下查询。我认为它与您原来的解决方案相同。

SELECT  scc.intID
        , sci.strName
FROM    tblEPiServerCommunityClub scc
        INNER JOIN tblEPiServerCommunityImageGalleryImage scig ON scig.intImageGalleryID = scc.intImageGalleryID
        INNER JOIN tblEPiServerCommunityImageGallery sci ON sci.intID = scig.intImageGalleryID
WHERE   scig.intID = 123123