Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

mySQL

18K
04 июня 2006 года
jons
4 / / 04.06.2006
Привет Всем.
Я только начал изучать SQL и у меня возникла такая проблема:
Как ,если это возможно, в mySQL4.* создать запрос на выборку из таблицы с 5 полями ,значения которых являются ключами данных в других 5 таблицах и вывести все значеня по их ключам каждой записи?

Спасибо.
242
04 июня 2006 года
Оlga
2.2K / / 04.02.2006
тебе надо выбрать данные из одной таблицы?
если да, то проблем не должно быть, запрос должен быть:
 
Код:
Select fieldname1, fieldname2, fieldname3,fieldname4,fieldname5
From   tablename;

или тебе надо выбрать данные из нескольких таблиц?
http://forum.codenet.ru/showthread.php?t=24971

что то я тебя не очень поняла:
Цитата:
создать запрос на выборку из таблицы с 5 полями


Цитата:
вывести все значеня по их ключам каждой записи

15
05 июня 2006 года
shaelf
2.7K / / 04.05.2005
2OlgaKr Как я понял, у него одна таблица связывает остальные.
2jons Самое быстрое и чтоб не думать это
 
Код:
SELECT * FROM table // Тут у тебя будут хранится ключи
SELECT *.table1, *.table2, *.table3, *.table4, *.table5 FROM table1, table2, table3, table4, table5 WHERE
// И тут просто подстанавливаешь значение из 1 запроса.
18K
05 июня 2006 года
jons
4 / / 04.06.2006
Спасибо за участие!

Постараюсь точнее объяснить детали:

формат 5 таблиц такой-
CREATE TABLE `rayon` (
`id` tinyint(4) NOT NULL auto_increment,
`value` varchar(32) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`),
UNIQUE KEY `value` (`value`)
) TYPE=MyISAM
CREATE TABLE `estate` (
`id` tinyint(4) NOT NULL auto_increment,
`value` varchar(32) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`),
UNIQUE KEY `value` (`value`)
) TYPE=MyISAM
...... и т.д.

Основная таблица содержмт 5(ссылок на id) полей со значением ключей из тех полей и нужно чтто-бы одним запросом выполнялась подстановка.
273
05 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
jons правильно структуру таблиц описал, только сама структура мутная очень, можно проще. Итак, есть 6 таблиц. В шестой находятся 5 полей, в которых находятся значения из 5 других. В тех таблицах поля ключевые. Наглядно структура лежит в аттаче. Выбор полей из основной можно сделать так:
 
Код:
SELECT *
FROM Таблица2 INNER JOIN (Таблица1 INNER JOIN Таблица3 ON Таблица1.Field1=Таблица3.Field1) ON Таблица2.Field2=Таблица3.Field2;

А вот с подстановочкой что? Из общей таблицы нужно подставить значения в 5 других?
18K
05 июня 2006 года
jons
4 / / 04.06.2006
попробую выразить графически
273
05 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
Вот тебе:
 
Код:
SELECT Estate.Value, Rayon.Value, street.Value
FROM (street INNER JOIN (Rayon INNER JOIN Estate ON Rayon.Id = Estate.Id) ON street.Id = Estate.Id) INNER JOIN Common ON (street.Id = Common.Street) AND (Rayon.Id = Common.Rayon) AND (Estate.Id = Common.Estate);

Где Common - таблица, содержащая ключевые записи с других таблиц (соотношение этих таблиц к Common - один ко многим)
18K
05 июня 2006 года
jons
4 / / 04.06.2006
Спасибо Всем за участие!

Из всех рассмотренных и придуманных вариантов остановился на:

select 'rayon'.`value`,'street'.`value`, 'estate'.'value'
from 'estate' ,`rayon`,`street`,'apsale' WHERE `rayon`.`id`=`apsale`.`rayon` AND
`street`.id=`apsale`.`serest` AND 'estate`.id=`apsale`.`estate`
/* apsale та самая таблица с пятью ключами а остальные включения таблиц не привожу для краткости*/

Готов рассмотреть любую критику или оптимальные варианты
8.0K
13 июня 2006 года
abrec
5 / / 13.07.2004
[QUOTE=jons]Привет Всем.
Я только начал изучать SQL и у меня возникла такая проблема:
Как ,если это возможно, в mySQL4.* создать запрос на выборку из таблицы с 5 полями ,значения которых являются ключами данных в других 5 таблицах и вывести все значеня по их ключам каждой записи?

Спасибо.[/QUOTE]

Используй left join или right join
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог