2016-06-09 83 views
0

我有一個帶有兩個字段的表。SQL:在字段1中選擇所有具有相同ID的行,其中字段2符合標準

如果代碼= A,則轉到第一列(批處理)並查看該值。 值爲1 然後,選擇所有行,其中批次= 1

如果特定批次的代碼不是那麼這些記錄不被選擇

這個查詢的結果將是僅包含行批量= 1,因爲其中一批= 1已得到代碼的線路之一= A

Batch code 
_____________ 
1  A 
1  B 
1  C 
1  D 
2  B 
2  B 
2  C 
2  D 
+0

您正在使用哪些DBMS? –

回答

0
SELECT Batch, Code 
FROM table t1 
WHERE Batch = (SELECT Batch FROM table t2 WHERE code='A') 
0

嘗試這樣的事情...

SELECT batch, code 
    FROM yourtable 
    WHERE batch IN (SELECT batch FROM yourtable WHERE code='A') 
0

您可以使用IN。首先,創建一個查詢,會發現Batch其中Code = 'A'值:

SELECT Batch 
FROM YourTable 
WHERE Code = 'A' 

然後用這個邏輯,一個子查詢與IN

SELECT Batch, Code 
FROM YourTable 
WHERE Batch IN (
    SELECT Batch 
    FROM YourTable 
    WHERE Code = 'A' 
) 

IN優於=在這裏,因爲它涵蓋了有代碼爲'A'的多個批次值的情況。

相關問題