SQL连接2个表,从第2个查询第1个条件

时间:2014-12-15 17:06:25

标签: sql sql-server

我有两张桌子:

停机时间类别: CatID ----- CatName ----- SiteID

停机时间: DtID ----- DtName ----- CatID

如何创建查询以便从Downtimes中提取所有记录,其中SiteID来自停机时间类别= x?

我不知道怎么说这个搜索来得到我需要的东西,我已经尝试了所有的连接但没有一个能给我我想要的东西

感谢任何帮助,谢谢

编辑: 我已经尝试了以下答案的所有变体,但没有一个工作...将一个复制到SMS并运行它现在第一次工作:( 我必须在某个地方打错...愚蠢...... 感谢您的回复

6 个答案:

答案 0 :(得分:1)

SELECT D.* FROM
DOWNTIMES D INNER JOIN DOWNTIMECATEGORIES DC ON (D.CATID = DC.CATID)
WHERE DC.SiteID = X

答案 1 :(得分:1)

试试这个:

SELECT T1.CatID
      ,T1.CatName
      ,T1.SiteID
FROM Downtimes AS T1
INNER JOIN DowntimesCategories AS T2
    ON T1.CatID = T2.CatID
WHERE T2.SiteID = X

答案 2 :(得分:1)

尝试使用内部联接,如下所示:

SELECT *
FROM DOWNTIME_CATEGORIES DC INNER JOIN DOWNTIME D
ON D.CatId = DC.CatID
WHERE DC.SiteID = 'X'

答案 3 :(得分:1)

看起来简单INNER JOIN就是您需要的

SELECT *
FROM   Downtime_Categories DC
       JOIN Downtimes D
         ON DC.CatID = D.CatID
            AND DC.SiteID = 'x' 

答案 4 :(得分:1)

这就是我提出的:

Select d.*
From Downtime d
Inner Join DowntimeCategories dc On dc.CategoryId = d.CategoryId
  And dc.SiteId = x

答案 5 :(得分:1)

你可以试试这个

SELECT D.CatID ,D.CatName ,D.SiteID
FROM Downtimes D INNER JOIN DowntimesCategories DC
    ON D.CatID = DC.CatID
WHERE DC.SiteID = put your id here