Выберите то же имя клиента, но у него другой адрес - PullRequest
0 голосов
/ 14 июня 2009

Попытка выбрать записи, которые относятся к одному и тому же клиенту, но адрес которых отличается.

Так что позже я могу позволить пользователю выбрать Боба Йонкерса, а затем обновить все записи Боба по определенному адресу. Поэтому я хочу показать все доступные записи.

Пример данных:

CUSTOMER_NAME, CUSTOMER_ADDRESS
Bob Yonkers  , 42 Satellite Cir
Bob Yonkers  , 667 Orbit St
Bob Yonkers  , 42 Satellite Cir
Bob Yonkers  , 667 Orbit St
David Boom   , 5959 Bush Ave
David Boom   , 5959 Bush Ave
David Boom   , 5959 Bush Ave
David Boom   , 5959 Bush Ave
David Boom   , 5959 Bush Ave
Ruby Tuesday , 123 Highway Ln Apt#1
Ruby Tuesday , 123 Highway Ln
David Boom   ,5959 Bush Ave
David Boom   ,5959 Bush Ave
David Boom   ,5959 Bush Ave

Таким образом, запрос вернет эти результаты ...

Пример результата:

CUSTOMER_NAME, CUSTOMER_ADDRESS
Bob Yonkers  , 42 Satellite Cir
Bob Yonkers  , 667 Orbit St
Ruby Tuesday , 123 Highway Ln Apt#1
Ruby Tuesday , 123 Highway Ln

Буду признателен за любую помощь.

Ответы [ 4 ]

5 голосов
/ 14 июня 2009
SELECT * 
FROM [table] t1
INNER JOIN [table] t2 ON t1.Name=t2.Name AND t1.Address<>t2.Address
2 голосов
/ 14 июня 2009

Это уточнение Джоэла:

SELECT distinct t1.* 
FROM [table] t1
INNER JOIN [table] t2 ON t1.Name=t2.Name AND t1.Address<>t2.Address
0 голосов
/ 14 июня 2009

Это заинтриговало меня, так как друг спросил меня что-то подобное. Приведенный ниже запрос решит проблему, хотя и неэффективно:

mysql> select DISTINCT CUSTOMER_NAME,CUSTOMER_ADDRESS from CUST_ADDR where CUSTOMER_NAME in (select CUSTOMER_NAME from CUST_ADDR GROUP BY CUSTOMER_NAME HAVING COUNT(DISTINCT CUSTOMER_ADDRESS) > 1 );</p> <pre><code>+---------------+----------------------+ | CUSTOMER_NAME | CUSTOMER_ADDRESS | +---------------+----------------------+ | Bob Yonkers | 42 Satellite Cir | | Bob Yonkers | 667 Orbit St | | Ruby Tuesday | 123 Highway Ln Apt#1 | | Ruby Tuesday | 123 Highway Ln | +---------------+----------------------+ 4 rows in set (0.01 sec)

0 голосов
/ 14 июня 2009

попробуй ...

select * from (select count(customername) as ct, customername, address from table group by customername, address) t1
where t1.ct>1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...