簡體   English   中英

MySQL選擇字段中重復的位置,而不返回所有記錄

[英]MySQL select where duplicates in field, not returning all records

我正在嘗試選擇記錄與另一個記錄共享一個字段值的記錄,但是我嘗試的查詢僅返回一個實例。 例如,在此表中:

COUNTRY         LANGUAGE
Mexico          Spanish
Portugal        Portuguese
Russia          Russian
Spain           Spanish
Thailand        Thai
United Kingdom  English
United States   English

...我想返回:

COUNTRY         LANGUAGE
Mexico          Spanish
Spain           Spanish
United Kingdom  English
United States   English

使用方法:

SELECT * FROM `table` GROUP BY `language` HAVING COUNT(language) > 1

我只會得到:

COUNTRY         LANGUAGE
Spain           Spanish
United Kingdom  English

我在哪里錯了?

找到了解決方案:

SELECT * FROM `TABLE` WHERE `language` IN (
    SELECT * GROUP BY `language` HAVING COUNT(primary_language) > 1
)

您需要將其分為兩個步驟。 獲取子選擇中的語言列表,然后獲取行:

SELECT * FROM country_language其中的語言(選擇語言FROM country_language GROUP BY語言的語言擁有計數(*)> 1)

嘗試這個

SELECT COUNTRY,從table語言WHERE LANGUING IN(從table GROUP BY中選擇語言, language HAVING COUNT(語言)> 1);

您需要一個子查詢,該查詢返回一組具有多種國家/地區語言的語言。 然后選擇該語言集中的所有行:

SELECT *
FROM `table`
WHERE language IN
(
  SELECT language FROM `table` GROUP BY `language` HAVING COUNT(*) > 1
) 

我沒有那么有經驗,但這應該可以解決問題!

SELECT Country
from (SELECT Country, count(Lang) as Langs
FROM Land
Group by Lang) as table2
WHERE table2.Langs!=1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM