MySQL: Проигнорируйте выбранный столбец при использовании ОТЛИЧНЫЙ

Скажем:

  1. Я хочу запросить колу, colB и colC в моей таблице.

  2. Я хочу видеть ОТЛИЧНЫЕ значения, но я не хочу, чтобы кола была критериями различия.

  3. Исключение колы не является опцией.

Что лучший способ состоит в том, чтобы структурировать тот запрос?

6
задан DrANoel 26 May 2010 в 23:29
поделиться

2 ответа

Здесь два случая. Допустим, у вас есть данные

A  B  C   (columns)
a  b  c1
a  b  c2

. Принятие различных значений A, B дает только один результат (a, b) с двумя значениями для столбца C. Итак, вопрос в том, хотите ли вы видеть все значения C или только одно значение для каждого отдельного значения столбцов A и B?

Если вы хотите увидеть только одно значение C, вы можете написать

SELECT A, B, MAX(C) FROM YourTable
  GROUP BY A, B

С другой стороны, если вы хотите увидеть все значения для C, то

SELECT DISTINCT A, B, C FROM YourTable WHERE ROW(A,B) IN 
  (SELECT A, B FROM YourTable
     GROUP BY A, B)

даст вам это. Эта последняя альтернатива необходима, если в таблице есть другие столбцы.

7
ответ дан 17 December 2019 в 00:04
поделиться

Я не знаю синтаксис для временной таблицы, так что псевдокод, если можно =)

Select Distinct ColB, ColC into @Temp
From SomeTable
Where (predicates)

Select ColA, ColB, ColC
From SomeTable
Inner Join @Temp on (SomeTable.ColB = @Temp.ColB and SomeTable.ColC = @Temp.ColC)
Where (predicates)   /* Added for comments */

Надеюсь, это поможет.

0
ответ дан 17 December 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: