Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вложеный SELECT? 
:(
    Опции темы
DimaSiK
Дата 17.9.2008, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 390
Регистрация: 20.8.2006

Репутация: нет
Всего: нет



Есть такие таблицы:
user_table
id   name
1    1_name
2    2_nane
3    3_name
4    4_name

param_table
id user_id s_name         
1      1        1_s_name
2      1        2_s_name
3      3        3_s_name
4      3        4_s_name
5      3        5_s_name

Нужно сформировать запросы, чтобы из таблицы param_table выбиралась одна запись соответствующая id пользователя из таблицы user_table. Должно быть что-то типа такого резальтата:

 id   name        s_name   
1    1_name   1_s_name
2    2_nane       null
3    3_name   3_s_name
4    4_name       null

Не могу понять, то ли делать вложеный запрос, то ли joinom?



Это сообщение отредактировал(а) DimaSiK - 17.9.2008, 10:50


--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

PM MAIL   Вверх
Deniz
Дата 17.9.2008, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(DimaSiK @  17.9.2008,  13:42 Найти цитируемый пост)
чтобы из таблицы param_table выбиралась одна запись соответствующая id пользователя
а по какому критерию определять какую запись нужно выбрать(если их несколько)?


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
DimaSiK
Дата 17.9.2008, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 390
Регистрация: 20.8.2006

Репутация: нет
Всего: нет



ДОбавим еще поле date ко второй таблице:
id user_id    s_name       date     
1      1        1_s_name   1.01.2007
2      1        2_s_name   1.02.2007
3      3        3_s_name   1.03.2007
4      3        4_s_name   1.04.2007
5      3        5_s_name   1.05.2007

Критерий - максимальная дата.


--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

PM MAIL   Вверх
Deniz
Дата 17.9.2008, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(DimaSiK @  17.9.2008,  14:39 Найти цитируемый пост)
Критерий - максимальная дата. 
а в примере привел минимальную

Можно join, примерно так:
Код
select  u.id, u.name, p.s_name   
from user_table u left join param_table p on p.user_id = u.id
where (p.date is null) 
  or (p.date in (select max(date) from param_table where user_id = u.id))




--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
DimaSiK
Дата 17.9.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 390
Регистрация: 20.8.2006

Репутация: нет
Всего: нет



Пасибо огромное!


--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0432 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.