Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Значение и справочник
 
 автор: Progmed   (17.06.2008 в 13:38)   письмо автору
 
 

Помогите пожалуйста советом или предложением. У меня есть задача в которой нужно чтобы в базе хранилось самостоятельное значение или индекс значения в справочнике. Но я никак не могу придумать как это можно определить путем запроса.

Сейчас у меня это примерно так выглядит:

Таблица значений:
1 | Текстовое значение
2 | 1
3 | 2

Таблица справочных значений:
1 | Волга
2 | Ваз

Как мне получить полный список значений:
1 | Текстовое значение
2 | Волга
3 | Ваз

И нужно делать два запроса, определяя сначала значение, а потом проверяя его на наличии в справочнике?

   
 
 автор: ronin80   (17.06.2008 в 13:45)   письмо автору
 
   для: Progmed   (17.06.2008 в 13:38)
 

таблица значений и таблица справочных значений связаны? если да то через какое поле?

   
 
 автор: Progmed   (17.06.2008 в 13:49)   письмо автору
 
   для: ronin80   (17.06.2008 в 13:45)
 

Значение в таблице значений - ID в справочнике значений

   
 
 автор: ronin80   (17.06.2008 в 14:06)   письмо автору
 
   для: Progmed   (17.06.2008 в 13:49)
 

1 | Текстовое значение
2 | 1
3 | 2

т.е. получается второй столбец (где имеется 'Текстовое значение') является внешним ключом для справочника значений?

   
 
 автор: Progmed   (17.06.2008 в 14:30)   письмо автору
 
   для: ronin80   (17.06.2008 в 14:06)
 

На данный момент да. То есть по логике здесь получается, что если значение есть в справочнике, то берем справочное, если нет, то берем указанное. Но реализовать такое не получается в запросе.

   
 
 автор: ronin80   (17.06.2008 в 14:42)   письмо автору
 
   для: Progmed   (17.06.2008 в 14:30)
 

если допустим такую структуру

таблица значений (table1)

ID - пк
NAME - наименование

таблица справочных значений (table2)

ID_ID - внешний ключ
NAME - наименование

то получим такой запрос:

Select NAME from table1
where not exists (select * from table2 where table2.ID_ID=table1.ID)
UNION
Select NAME from table1
where exists (select * from table2 where table2.ID_ID=table1.ID)

   
 
 автор: Progmed   (17.06.2008 в 15:04)   письмо автору
 
   для: ronin80   (17.06.2008 в 14:42)
 

ronin80, спасибо огромное!!! Вроде это именно то, что доктор прописал. Попробую и отпишусь :-)

   
 
 автор: Progmed   (18.06.2008 в 12:50)   письмо автору
 
   для: ronin80   (17.06.2008 в 14:42)
 

Ан нет, такой вариант не подходит, как оказывается. Из table2 нельзя получить значения похоже никак?

   
 
 автор: ronin80   (18.06.2008 в 13:08)   письмо автору
 
   для: Progmed   (18.06.2008 в 12:50)
 

извиняюсь ступил немного

Select ID, NAME from table1
where not exists (select * from table2 where table2.ID_ID=table1.ID)
UNION
Select ID, (Select table2.NAME From table2 Where table2.ID_ID=table1.ID) as NAME from table1
where exists (select * from table2 where table2.ID_ID=table1.ID)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования