2010-05-21 54 views
2

我是一個總的數據庫新手,我可能使用錯誤的術語來搜索答案。MySQL:檢查模型上的兩個字段是否總是相同?

我有一個MySQL表如下:

+------------+---------------+------+-----+---------+-------+ 
| Field  | Type   | Null | Key | Default | Extra | 
+------------+---------------+------+-----+---------+-------+ 
| placeid | int(11)  | NO | PRI | NULL |  | 
| grid  | varchar(120) | YES |  | NULL |  | 
| vill  | varchar(300) | YES |  | NULL |  | 
+------------+---------------+------+-----+---------+-------+ 

我想找出是否「網格」和「VILL」總是發生在同一個組合與否。

也許會用一個例子可以更清晰:

placeid, grid, vill 
1,  TM1, Suffolk 
2,  TM1, Suffolk 
3,  WA8, Newcastle 
4,  WA8, Newcastle 
5,  WA8, York 

我想構建一個返回「WA8」,但不是「TM1」的查詢,因爲「WA8」組合出現超過一個威爾。

回答

2

你可以這樣說:

SELECT grid 
FROM MyTable 
GROUP BY grid 
HAVING COUNT(DISTINCT vill) > 1 

它選擇對其中有多個不同的VILL的網格。

+0

如果表中有10個,20個字段並且每個字段都可能有重複值,它會怎麼樣?不是說這是現實的情況,而是理論上的? – 2010-05-21 21:31:19

+0

你的意思是COUNT(DISTINCT vill1,vill2,vill3 ...)> 1? – Paul 2010-05-21 21:36:26

+0

真棒 - 謝謝! – AP257 2010-05-21 22:56:29