![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| StachelDraht |
|
|||
![]() Не Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 19.1.2006 Репутация: нет Всего: 1 |
Привет!
Помогите пожалуйста составить запрос. Имеем 2 таблицы: 1 таблица devices хранит в себе наименования девайсов и прочую лабуду, все поля приводить не буду поля:id, type, serial, info 2 таблица locations хранит в себе места нахождения девайсов поля: id, serial, location В результате запрос должен выводить все девайсы и показывать их location, но так как у каждого девайса может быть неограниченное количество location требуется вывести только тот location у которого id больше, т.е. тот который был добавлен последним. На данный момент один и тот же девайс выводится столько раз, сколько для него есть location. Надеюсь понятно изложил свою мысль. Большое спасибо |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 7 Всего: 67 |
StachelDraht, ну тогда уже приводите и третью таблицу-связь. Рекомендации по ее структуре или запросу к ней можно давать только видя что уже есть.
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
а в чём проблема? один запрос к девайсам, получили их идентификаторы, сложили в одну строку и вторым запросом получаем все локейшены
|
|||
|
||||
| StachelDraht |
|
|||
![]() Не Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 19.1.2006 Репутация: нет Всего: 1 |
solenko, не понял... пока таблиц только две
bars80080, спасибо, но как будет выглядеть второй запрос всем спасибо за ответы |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 7 Всего: 67 |
Обычно вашу задачу решают с помощью отношения многие ко многим с приблизительно такий структурой таблиц (а псевдо-sql):
Ну и с этом случае полагаются либо на created, либо на state (true для активного location и false для всех остальных) Это сообщение отредактировал(а) solenko - 31.1.2011, 21:18 -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| StachelDraht |
|
|||
![]() Не Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 19.1.2006 Репутация: нет Всего: 1 |
все равно не совсем понимаю, т.е. в третью таблицу надо вносить данные тогда же когда и в первые две. Допустим полагаться будем на поле state, как мне узнать реально текущий локейшн. Или state надо всегда обновлять при изменении локейшена.
Спасибо еще раз. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 14 Всего: 386 |
то еще извращение... Таблицы маленькие или большие? Индексы где-нибудь есть? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 7 Всего: 67 |
ну или еще вот такие извраты есть. На практике, кстати, оказывается самым быстрым запрос с объединением id и location в одно текстовое поле, группировка по device и выбор максимального этого поля.
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| StachelDraht |
|
|||
![]() Не Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 19.1.2006 Репутация: нет Всего: 1 |
ksnk, спасибо, работает!!!
Всем большое спасибо! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |