2014-04-28 26 views
0
SELECT * 
FROM VB_Names 
WHERE Buurt = 'Spangen' 
    AND Gender = 'M' 
    AND Gender = 'V' 
GROUP BY Name 
ORDER BY COUNT DESC LIMIT 6 

我希望從列'性別'M'獲得3個結果,並通過計數在DESC上獲得來自列'性別'V'的列的3個結果。從限制和刪除的2列中獲取結果

+0

你有AND條件性別= 'M' 和性別= 'V' 之間。我認爲這是不對的,因爲一列不能同時有兩個不同的值。 – Guneli

回答

5

性別在同一行中不能同時爲'M'和'V',因此此查詢不會返回任何內容。相反,使用union all

(SELECT * 
FROM VB_Names 
WHERE Buurt = 'Spangen' AND Gender = 'M' 
ORDER BY count DESC 
LIMIT 3 
) UNION ALL 
(SELECT * 
FROM VB_Names 
WHERE Buurt = 'Spangen' AND Gender = 'V' 
ORDER BY count DESC 
LIMIT 3 
) 
0

更改AND條件OR

SELECT * 
FROM VB_Names 
WHERE Buurt = 'Spangen' 
    AND (Gender = 'M' OR Gender = 'V') 
GROUP BY Name 
ORDER BY COUNT DESC LIMIT 6 
+0

性別IN('M','V')'爲簡潔起見。但是你不能保證你會得到這三種方式。 – DanMan