2016-03-30 22 views
1

Belirli alanlar için benzersiz çiftleri satırları döndüren bir SQL sorgusunu nasıl yazarım.Yanıt veren UNIQUE * çiftleri * yanıtları * çiftleri * yanıtları

(1, 'Bill Smith', '1 Main Street'), 
(2, 'Harriet Jones', '2 Cherry Street'), 
(3, 'Bill Smith', '1 West 125th Street'), 
(4, 'Susan Smith', '1 Main Street'), 
(5, 'Bill Smith', '1 Main Street') 

Ben

(1, 'Bill Smith', '1 Main Street'), 
(2, 'Harriet Jones', '2 Cherry Street'), 
(3, 'Bill Smith', '1 West 125th Street'), 
(4, 'Susan Smith', '1 Main Street') 

Bu örnek benzersiz ad/adres çiftleri ile SEÇ ve (bu örneğin) geri almak istediğiniz tablo Verilen örnek için

, ayrıca

mevcuttur

Teşekkürler.

cevap

1

Eğer sen ad/adres çifti başına bir grup oluşturmak için GROUP BY kullanabilir ve grup başına en az kimliği alabilirsiniz

select distinct name, address from your_table ; 
+0

Bence bu orijinal posterin ihtiyacı olan şey .. – scaisEdge

1

DISTINCT ile ilgili bir sorgulama yapabilirsiniz. Sadece bu amaç için veri sütunlarını seçmelisiniz.

Düzenleme: Oh, ikinci tablo yalnızca istenen sonuçtu - UNION'u unutun. Sen değerinin seçilmiş farklı kullanabilirsiniz

+0

Bir örnek paylaşabilir misiniz? –

+0

Tam sorgu ile bir cevap var beri nessessary ;-) –

+1

Adil yeterli. Kendimi bu görevin gerçekten olduğundan daha karmaşık olduğuna inandırmayı başardım. –

1

gerekir. Sonra sadece bu kimlikleri olan satırları seçebilirsin; scaisEdge onun cevabını gösterdiği gibi

SELECT id, name, address 
FROM testThing 
WHERE id IN (
SELECT MIN(id) FROM testThing GROUP BY name, address 
); 

Eğer id seçmek istemiyorsanız

, bu tıpkı diğer alanlarda DISTINCT kullanmak basittir.

+0

Teşekkürler. Gelecekte başvurumun daha karmaşık hale gelmesi nedeniyle bu tekniği yararlı buluyorum. –