Reputation: 1078
I have a nice little query that works. It queries a single "Clients" table
Here is the table: SQLFiddle is here: http://sqlfiddle.com/#!2/1fcea
CREATE TABLE `clients` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NULL ,
`address` VARCHAR(45) NULL ,
`state` VARCHAR(45) NULL ,
`foo` VARCHAR(45) NULL ,
`phone` VARCHAR(45) NULL ,
PRIMARY KEY (`id`) );
INSERT INTO`clients` (`name`, `address`, `state`, `foo`, `phone`) VALUES ('Jim', '123 Main', 'MO', '876', '2038221661');
INSERT INTO`clients` (`name`, `address`, `state`, `foo`, `phone`) VALUES ('Tom ', '234 Elm', 'MO', '433', '2038221661');
INSERT INTO`clients` (`name`, `address`, `state`, `foo`, `phone`) VALUES ('Steve', '653 Pine', 'CT', '863', '5125901977');
INSERT INTO`clients` (`name`, `address`, `state`, `foo`, `phone`) VALUES ('Dave', '654 Oak', 'NV', '872', '8769085435');
INSERT INTO`clients` (`name`, `address`, `state`, `foo`, `phone`) VALUES ('Oscar', '622 FIrst ', 'LA', '625', '5125551212');
Here is the query
SELECT id,
name,
address,
phone
FROM clients
WHERE state IN ( 'MO', 'LA', 'CT' )
AND foo > 40
ORDER BY foo
It Returns:
2 Tom 234 Elm 2038221661
5 Oscar 622 FIrst 5125551212
3 Steve 653 Pine 5125901977
1 Jim 123 Main 2038221661
I dont want want our customer service people calling any place more than once. So I need to return only distinct phone numbers.
I need it suppress (1) Jim and Return
2 Tom 234 Elm 2038221661
5 Oscar 622 FIrst 5125551212
3 Steve 653 Pine 5125901977
Upvotes: 0
Views: 75
Reputation: 204784
SELECT id,
name,
address,
phone
FROM clients
WHERE state IN ( 'MO', 'LA', 'CT' )
AND foo > 40
AND id in
(
select min(id) from clients group by phone
)
ORDER BY foo
Upvotes: 1