2010-07-01 3 views
0

Мне нужна помощь с запросом, чтобы получить отдельные записи из таблицы.SQL-запрос получает отдельные записи

  SELECT distinct cID, firstname, lastname, 
      typeId, email from tableA 

typeId и адрес электронной почты имеют разные значения в таблице. Я знаю, что это приводит к возврату 2 записей, потому что эти значения разные.

Есть ли в любом случае я могу получить 1 запись для каждого идентификатора, независимо от типаId и электронной почты?

+0

Вам нужно ввести тип и адрес электронной почты вообще? (это не предполагает, если вам все равно, какой из них вы можете получить), и в этом случае самым простым может быть просто отказаться от выбора - в какой момент он отличается только тем, что вам нужно, нет? – Ragster

ответ

0

Если вы не заботитесь о том, какой типId и адрес электронной почты выбираются с каждым идентификатором cID, следующим является один из способов сделать это.

SELECT DISTINCT a.cID 
     , a.firstname 
     , a.lastname 
     , b.typeId 
     , b.email 
FROM TableA a 
     INNER JOIN (
      SELECT cID, MIN(typeID), MIN(email) 
      FROM TableA 
      GROUP BY 
        cID 
     ) b ON b.cID = a.cID 
0

Если какое-либо одно значение для TypeID и электронной почты являются приемлемыми, то

SELECT cID, firstname, lastname, 
    max(typeId), max(email) 
from tableA 
group by cID, firstname, lastname, 

должны это сделать.

0

Это вы после:?

SELECT DISTINCT a.cID, a.firstname, a.lastname, (SELECT TypeID из TABLEA WHERE CID = a.cID) (Выберите письмо от TABLEA WHERE CID = a.cID) от TABLEA AS a

Смежные вопросы