Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Возможно ли сделать такой MySQL запрос? (uuuyyuuu) 15/07/2007 - 22:31:14
      Re: Классный вопросик!!! (bac) 16/07/2007 - 23:00:28



From: uuuyyuuu - 15/07/2007 - 22:31:14
Subject:Возможно ли сделать такой MySQL запрос?
-----------------
Есть три таблицы, записей 2 миллиона. Грузовики (пример условен, обозначения чтобы просто понятно было) и водилы.

Каждый водитель умеет ездить только на известных ему типах машин (нескольких), на других предположим он не умеет.

tblCars
CarID, CarName
...
21 Audi
22 Mercedes
23 Moskwitch
23 BMW
...

tblDrivers
DriverID, DriverName
...
11 Ivan
12 Petr
13 John
...

tblCar2Driver - многие ко многим (задаем кто на ком ездит)
ID, CarID, DriverID
1 21 12
2 22 11
3 23 12
4 23 13
5 24 11
6 24 13


Так вот, надо сделать запрос чтобы напротив каждой машины стоял только один водитель, УНИКАЛЬНЫЙ, т.e. чтобы одного и того же водителя в таблице дважды не повторялось, а машины были ВСЕ ДО ЕДИНОЙ. (Другими словами, если не понятно, нам надо выбрать кто поедет на каждой из машин). Т.е. например так:

CarID, DriverID
21 12 (кроме него эту машину никто не водит)
22 11 (двадцать вторую машину тоже никто кроме этого не водит)
23 13 (12 водилу мы выбрать не можем, он уже едет на 21 машине, поэтому тут 13)
24 null никого не осталось, все водилы заняты.

Так вот можно ли сделать такое одним запросом? Я не беру пример оптимизации, как раскидывать разных водил куда чтобы всем хватило - это все фигня мне не надо. Мне надо в лоб просто рассовать водил так чтобы на против каждой машины был только один уникальный водила. Потому что это быстро. Как такое сделать? Сколько не писал запросов в своей жизни, а что-то затрудняюсь :)


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
31876



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |