Получение списка типов для того же столбца, но с разными значениями - PullRequest
0 голосов
/ 05 февраля 2020

Таблица t:

type (col1) || значение (col2)

5 (Col1) со значением 73 (Col2),

6 (Col1) со значением 80 (Col2),

7 (Col1) со значением 65 (Col2),

Я хотел бы получить список всех типов из столбца 1, для которых значение (столбец 2) равно 73 и 80.

Я попытался сделать :

  SELECT `type` FROM t
  WHERE `value` = 73 
  AND `value` = 80

Я просто возвращаю список [] после вызова db.execute (). Цени любую помощь

Ответы [ 2 ]

2 голосов
/ 05 февраля 2020

Если вы хотите type с обоими value с, то вы хотите сравнить значения в разных строках. Агрегация может сделать это:

SELECT `type`
FROM t
WHERE `value` IN (73, 80)
GROUP BY type
HAVING COUNT(DISTINCT type) = 2;

Вам нужно COUNT(DISTINCT), только если ваши данные могут иметь дубликаты. Если это невозможно, используйте COUNT(*) = 2.

1 голос
/ 05 февраля 2020

Я хотел бы получить список всех типов из столбца 1, для которых значение (столбец 2) равно 73 и 80.

Проверка состояния записи имеет оба значения 73 и 80, которые не могут быть успешными.

Вы хотите OR вместо:

SELECT `type` FROM t WHERE `value` = 73 OR `value` = 80

Вы можете сократить это с помощью IN

SELECT `type` FROM t WHERE `value` IN (73, 80)
...