2013-12-12 63 views
2

我是一個業餘的SQL腳本,我需要你的幫助。我有以下查詢給我4行。選擇與標準不同的字段

SELECT A.Id, 
     A.InterfaceId, 
     I.DeviceId, 
     I.TypeId, 
     A.AnoType 
FROM I 
INNER JOIN A ON I.InterfaceId = A.InterfaceId 
INNER JOIN D ON I.DeviceId = D.DeviceId 
WHERE I.AccountId = '500' 
    AND D.UserId = '1000' 

此查詢的結果是:

Id     InterfaceId       DeviceId     TypeId AnoType 
---------------------------------------------------------------------------------------------------- 
1216046 | C4BEB5D8-8749-4831-92F4-070CF58F7C81 | B0E8C423-1B01-4AD5-A383-B0E584E6176C | 1207 | -40 | 
1216047 | F00F87BD-F1B4-4DAD-801A-E022403831D5 | B0E8C423-1B01-4AD5-A383-B0E584E6176C | 1208 | -40 | 
1216329 | F00F87BD-F1B4-4DAD-801A-E022403831D5 | B0E8C423-1B01-4AD5-A383-B0E584E6176C | 1208 | -3 | 
1225762 | F00F87BD-F1B4-4DAD-801A-E022403831D5 | B0E8C423-1B01-4AD5-A383-B0E584E6176C | 1208 | -20 | 
---------------------------------------------------------------------------------------------------- 

我的問題是,我需要一個查詢將返回他們的AnoType不是-3及其InterfaceId不具有行-3其他行中的AnoType的值。例如,在第三行中,AnoType是-3,所以我的查詢應該只返回第一行而沒有其他行。 任何幫助將不勝感激。

由於提前,

吉安

回答

1
SELECT A.Id, 
     A.InterfaceId, 
     I.DeviceId, 
     I.TypeId, 
     A.AnoType 
FROM I 
INNER JOIN A ON I.InterfaceId = A.InterfaceId 
INNER JOIN D ON I.DeviceId = D.DeviceId 
WHERE I.AccountId = '500' 
    AND D.UserId = '1000' 
    AND A.AnoType <> -3 
    AND A.InterfaceId NOT IN (SELECT InterfaceId 
          FROM A 
          WHERE AnoType = -3) 
+0

解決我的問題,感謝穆罕默德·阿里 – Kian

+0

@Kian沒問題,很高興它幫助:) –