SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 06.06.2017 10:37:53

Анна
Участник
Зарегистрирован: 06.06.2017
Сообщений: 2

Помогите написать запрос

Добрый день!

Есть таблица с клиентами. Client
В таблице есть поля: №паспорта, ФИО, город.
Один и тот же клиент может быть вбит несколько раз.
Нужно проверить: Если № паспорта одинаковый, то у этих записей должны быть одинаковые и ФИО и город.
Если все верно, то "ОК", если нет, то "ошибка"

Неактивен

 

#2 06.06.2017 11:05:10

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: Помогите написать запрос

А зачем его вбивать несколько раз? Почему не достаточно одного раза?
Сделайте уникальный индекс на поле "№паспорта" и проблем с повторами не будет.

Неактивен

 

#3 06.06.2017 11:22:16

Анна
Участник
Зарегистрирован: 06.06.2017
Сообщений: 2

Re: Помогите написать запрос

klow написал:

А зачем его вбивать несколько раз? Почему не достаточно одного раза?
Сделайте уникальный индекс на поле "№паспорта" и проблем с повторами не будет.

Увы, такие данные. Чтобы убедиться, что клиент один и тот же, нужна эта проверка.

Неактивен

 

#4 06.06.2017 11:56:40

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Помогите написать запрос

mysql> create table t_8141(passport varchar(255),fio varchar(255),city varchar(255));
Query OK, 0 rows affected (0.32 sec)

mysql> insert into t_8141 values('1','IvanovII','moscow'),('1','Petrov','Riga'),('2','Sidorov','Tymen');
Query OK, 3 rows affected (0.04 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select passport from t_8141 group by passport having count(distinct concat(fio,city)) > 1;
+----------+
| passport |
+----------+
| 1        |
+----------+
1 row in set (0.00 sec)

То есть выбираем только те паспорта, у которых есть различные ФИО+ГОРОД


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson