Избегайте дублирования идентификатора в ответе

0

Я пытаюсь выполнить следующий SQL-запрос, но я получаю один дубликат идентификатора в своем ответе.

SELECT ci.customer_id,
       ci.first_name,
       ci.user_gender,
       ci.customer_status,
       fr.relation
FROM   customerinfo ci
       INNER JOIN familyrelation fr
               ON ( fr.personid_two = ci.customer_id )
WHERE  ci.customer_id IN (SELECT personid_two
                          FROM   familyrelation
                          WHERE  personid_one = 17)
       AND ci.csp_user_id = 5;  

Когда я запускаю этот запрос, я получаю правильный результат, но один customer_id становится повторяющимся. Любая помощь/совет получили высокую оценку.

  • 0
    Потому что ты присоединяешься. Итак, какие данные вы хотите, если у вас есть 2 записи в объединенной таблице? Вы должны быть более конкретным, чем это! Добавить пример данных и ожидаемый результат
  • 0
    нет проблем в получении записей. Но тот же customer_id дублируется еще раз. @juergend
Показать ещё 1 комментарий
Теги:

1 ответ

0

Если ваши данные выглядят так

drop table if exists ci,fr;
create table ci(customer_id int, name varchar(3),csp_user_id int);
create table fr(personid_one int,personid_two int,relation varchar(10));

insert into ci values (1,'aaa',5),(2,'bbb',5);
insert into fr values (17,1,'mother'),(17,1,'father'),(17,2,'niece');

Затем ваш запрос выбирает строки, которые я ожидал бы

SELECT ci.customer_id,
       ci.name,
       fr.relation
FROM   ci
       INNER JOIN  fr
               ON ( fr.personid_two = ci.customer_id )
WHERE  ci.customer_id IN (SELECT personid_two
                          FROM   fr
                          WHERE  personid_one = 17)
AND ci.csp_user_id = 5;  

 +-------------+------+----------+
| customer_id | name | relation |
+-------------+------+----------+
|           1 | aaa  | mother   |
|           1 | aaa  | father   |
|           2 | bbb  | niece    |
+-------------+------+----------+
3 rows in set (0.00 sec)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню