Дублированная таблица, значения слов варьируются даже между дублированными словами. Найти слова имеют только определенное значение - PullRequest
0 голосов
/ 19 октября 2011

Есть таблица, в которой я работаю в Mysql. Есть слова и ценности. Значения логические, как «1» или «0». Слова могут повторяться более одного раза. И их значения варьируются. Например, один «def» может быть «0», а другой - «1». Я пытаюсь найти:

  • Значения имеют только нулевые значения. И если это слово встречается более одного раза, возьмите только одно слово.
  • Но значение «def» имеет значение «0». Также значение «1». Это должны быть только значения '0'!

Таблица похожа на:

word value
----  -----
abc    1
abc    1
def    0
def    1
def    0
xyz    0
xyz    0
xyz    0
xxx    1
zzz    0

Ответы [ 2 ]

2 голосов
/ 19 октября 2011

Я действительно не понимаю, что вы пытаетесь получить.
В любом случае я пытаюсь:

SELECT DISTINCT word FROM your_table
WHERE value = 0

Если вы хотите отсортировать слова по алфавиту, вы можете сделать

SELECT DISTINCT word FROM your_table
WHERE value = 0
ORDER BY word

EDITED в ответ на комментарий пользователя:
Попробуйте это:

SELECT DISTINCT word,value FROM your_table
WHERE word NOT IN
  (SELECT word FROM your_table WHERE value = 1)

или

SELECT word, SUM(value) as tot FROM your_table
GROUP by word
HAVING SUM(value) = 0
0 голосов
/ 19 октября 2011

Что-то вроде

select word,min(value) from table group by word;

, которое будет возвращать 0, если слово имеет 0 и 1 в качестве значения, или 1, если оно имеет только 1

Если вы специальнотолько значения «0»:

select word,value from table where value=0 group by word;
...