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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с несколькими талицами 
:(
    Опции темы
Gold Dragon
Дата 3.1.2005, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



Есть к примеру таблицы

vid
1. kod
2. name

strana
1. kod
2. name

main
1. vid
2. data
3. strana
4. name

Совсем запутался.... Мне нужно чтобы в таблицу main в поле 1 по коду подставлялось значение name. И так же с полем 3... Как это сделать? То есть мне нужно читать значения и записывать


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 3.1.2005, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Хм...
судя по всему придется в два запроса...
1.
Код
SELECT `vid` . `kod` as vid , `strana` . `kod` as strana  FROM `vid` , `strana` WHERE `name` = '" . $name . "'

2. Парсим
Код
INSERT INTO `main` VALUES ( " . $vid . " , NOW() , " . $strana . " , '" . $name . "')


Хотя можно попробовать что-то типа этого:
Код

INSERT INTO `main` VALUES (
             ( SELECT `kod`FROM `vid` WHERE `name` = '" . $name . "') ,
             NOW() ,
             ( SELECT `kod`FROM `strana` WHERE `name` = '" . $name . "') ,
             '" . $name . "' )

$name надо знать заранее...

Это сообщение отредактировал(а) Mal Hack - 3.1.2005, 16:39
PM ICQ   Вверх
Kesh
Дата 9.1.2005, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



А почему бы не хранить в таблице main сами коды... тогда можно будет делать результирующую выборку...

Код

select `vid`.`name`, `main`.`data`, `strana`.`name`, `main`.`name`
from `vid`, `strana`, `main`
where (`main`.`vid`=`vid`.`code`)
and (`main`.`strana`=`strana`.`code`)

Добавлено @ 01:34
Вот такая вот получилась реализация внешник ключей... smile


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Gold Dragon
Дата 9.1.2005, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



Mal Hack вроде смысл понял

Kesh не понял что ты имеешь в виду.... я ещё плохо в запросах разбираюсь smile


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Kesh
Дата 9.1.2005, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



Я имею в виду то, что необязательно хранить в таблице main сами названия стран и видов... можно просто хранить как бы ссылки на них (достигается экономия места в таблице main)... а сами данные так и храняться ав таюлицах strana и vid...
Ты опиши проблему поподробнее... Может какое другое решение найдется...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Kesh
Дата 9.1.2005, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



Я вот тут подумал... Если тебе надо заполнить соответствующие поля таблицы main значениями из талиц vid и strana (значения кодов уже хранятся в таблице main), то подойдет какой-нить тако запрос...

Код

update `main`, `vid`, `strana`
set
`main`.`vid`=`vid`.`name`,
`main`.`strana`=`strana`.`name`
where (`main`.`vid`=`vid`.`kod`)
and (`main`.`strana`=`strana`.`kod`)



--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 9.1.2005, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Kesh
дык у него так и есть. Master -> Detail... kod - внейшние ключи
PM ICQ   Вверх
Kesh
Дата 9.1.2005, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



Mal Hack Так вот я и не понял... Он хочет делать выборку по внешним ключам, заносить новые элементы в main по внешним ключам или заменить внешние ключи в main на значения записей из других таблиц...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 9.1.2005, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Дык по ключам....
Я в своем первом посте сначала ключи доставал, потом уже писал их в main
PM ICQ   Вверх
Gold Dragon
Дата 9.1.2005, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



Kesh
у меня три разные таблицы.... Mal Hack уже подсказал как делать и я даже немного понял smile


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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