Как организовать запрос к БД ???

KrotAnn

Новичок
Как организовать запрос к БД ???

Есть таблица которая содержит в себе имена и время :
_______________
Name | Time
______________
Petrov |13:20:00
______________
Ivanov| 13:20:00
______________
Sidorov| 12:00
______________
Petrov |12:20:00
______________

Пользователь вводит время: 13:20, я делаю к БД такой запрос:
PHP:
SELECT * FROM `accteptence`  WHERE   (Time  <>  '13:20:00')
Задача: Мне нужно выбрать тех у кого нет 13:20:00
Т.Е. РЕЗУЛЬТАТОМ запроса должно быть:
Sidorov | 12:00 Но Petrov сюда уже не подходит т.к. у него время занято .
Как это сделать Помогите пожалуйста!

-~{}~ 08.02.06 18:43:

Может я не корректно задала вопрос: Нужно выбрать тех товарищей, у которых не встречается 13:20:00 вообще!! В таблице выше у меня сейчас выбирает
Sidorov и Petrov. Это не верно. Т.к. у Petrov есть одна сторока которая не удовлетворяет условию.
 

vovik

Новичок
Так подойдет ?

[sql]
SELECT * FROM accteptence WHERE Name NOT IN (SELECT Name FROM accteptence WHERE Time = '13:20:00')
[/sql]

В принципе, то же самое можно записать с помощью джойна, просто выйдет чуть менее наглядно :)
 

Wicked

Новичок
Можно еще так, но
1) индексы не будут использоваться
2) выберет строки сгруппированные по имени, что лишает нас возможности получить для них время.

[SQL]SELECT
name,
(sum(Time = '13:20:00') > 0) as TimeFoundFlag
FROM
Acceptance
GROUP BY name
HAVING
TimeFoundFlag = 0
[/SQL]
 

Breeze

goshogun
Команда форума
Партнер клуба
[sql]
SELECT name, max(time) as max_time FROM acceptance group by name having max_time<>'13:20:00'
[/sql]
 

vovik

Новичок
Автор оригинала: Breeze
vovik
а ты пробовал?
Зачем пробовать ? Я в состоянии понять что выбирает твой запрос и без "пробы".

Требование было:
Задача: Мне нужно выбрать тех у кого нет 13:20:00
Где-нибудь сказано, что это максимальное значение ?
 
Сверху