POSTGRESQL - Приносить информацию о 2 подмостках с 1 полем совместно

У меня есть следующая сцена:

2 Подмостки Пациент и Активность

Терпеливая таблица содержит: Удостоверение личности, Имя и Фамилия. Таблица Активность содержит: Удостоверение личности пациента, Активидад.

Внутри таблицы активности у меня есть повторенные удостоверение личности пациентов несколько раз (Так как они реализуют несколько активности).

Я нуждаюсь в консультации, где он смог приносить удостоверения личности так, что не были повторены таблицы Активность и имена и фамилии Терпеливой таблицы.

Я пробовал с count, но он дает мне ошибки используя это вместе с group by

2
задан 01.06.2016, 17:10
2 ответа

Кажется, что ты нуждаешься в простом JOIN. Есть несколько способов добиваться, что DNI будьте единственным, но альтернатива:

SELECT  A.DNI,
        P.Nombre,
        P.Apellido
FROM (  SELECT DISTINCT DNI
        FROM Actividad) AS A
INNER JOIN Paciente AS P
    ON A.DNI = P.DNI;

Другая альтернатива, которую я представляю, будет быстрее он состоит в том, чтобы использовать EXISTS:

SELECT *
FROM Paciente AS P
WHERE EXISTS(SELECT 1 FROM Actividad
             WHERE DNI = P.DNI);
1
ответ дан 24.11.2019, 14:15
  • 1
    Точно то, в чем он нуждался, Спасибо! –  Hummber 01.06.2016, 17:16

Ты должен использовать inner join :

select pa.dni, pa.nombre, pa.apellido, ac.actividad from Paciente pa
inner join Actividad ac on pa.dni = ac.dni

pa - прозвище Терпеливой таблицы, то же самое что ac Активности.

0
ответ дан 24.11.2019, 14:15
  • 1
    Проблема с этой консультацией состоит в том, что он повторяет мне удостоверения личности людей, он нуждался в том, чтобы группировать их. Уже используйте EXISTS, большое спасибо также! –  Hummber 01.06.2016, 17:24