SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 10.09.2010 21:39:27

Леонид
Участник
Зарегистрирован: 10.09.2010
Сообщений: 5

Помогите сделать правильный запрос! Плис!

Доброго времени суток! В базе есть две таблицы: 1. таблица, которую заполняет автоматом внешняя программа - структура такая - id, TagName,  TagValue. Эта таблица постоянно пополняется - одному и тому же TagName присваиваются новые значения TagValue и записываются как новая строка. Вторая таблица рабочая, структура такая - id, TagName, type. Необходимо выбирать из первой таблицы ПОСЛЕДНЕЕ значение TagValue соответствующего TagName  и после некоторого преобразования вставлять в ячейку type такого же TagName рабочей таблицы! В MySQL  только начал разбираться - новичок! Может МЭТРЫ помогут-подскажут... Заранее спасибо!

Неактивен

 

#2 11.09.2010 20:49:36

Леонид
Участник
Зарегистрирован: 10.09.2010
Сообщений: 5

Re: Помогите сделать правильный запрос! Плис!

Неужели никто не знает? И не может помочь? Или я как-то не так описал свою ситуацию?

Неактивен

 

#3 11.09.2010 21:51:54

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите сделать правильный запрос! Плис!

Нужно выбирать последнее значение TagValue для конкретного tagname или для всех?
Как по двум записям, соответствующим одному tagname, определить какая добавлена позднее? по большему значению id?

Неактивен

 

#4 12.09.2010 10:10:06

Леонид
Участник
Зарегистрирован: 10.09.2010
Сообщений: 5

Re: Помогите сделать правильный запрос! Плис!

Да, по наибольшему id!

Неактивен

 

#5 12.09.2010 10:27:28

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите сделать правильный запрос! Плис!

Тогда сначала ищите max(id), потом по id выбираете TagValue.

Неактивен

 

#6 12.09.2010 12:24:22

Леонид
Участник
Зарегистрирован: 10.09.2010
Сообщений: 5

Re: Помогите сделать правильный запрос! Плис!

Если не трудно, плис, дайте пример SELECT'а! Я только начинаю разбираться с SQL! Заранее спасибо!

Неактивен

 

#7 12.09.2010 12:35:22

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите сделать правильный запрос! Плис!

select TagValue from table1 join (select max(id) from table1 where TagName='...') t using(id);

http://dev.mysql.com/doc/refman/5.1/en/join.html
http://dev.mysql.com/doc/refman/5.1/en/select.html

Неактивен

 

#8 12.09.2010 13:48:15

Леонид
Участник
Зарегистрирован: 10.09.2010
Сообщений: 5

Re: Помогите сделать правильный запрос! Плис!

Sorry! А что означает "t using(id)"? Не нашел в описаниях...

Неактивен

 

#9 12.09.2010 14:06:18

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите сделать правильный запрос! Плис!

table1.id=t.id

не внимательно смотрели:
A table reference can be aliased using tbl_name AS alias_name or tbl_name alias_name:

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson