Select fieldname1, fieldname2, fieldname3,fieldname4,fieldname5
From tablename;
mySQL
Я только начал изучать SQL и у меня возникла такая проблема:
Как ,если это возможно, в mySQL4.* создать запрос на выборку из таблицы с 5 полями ,значения которых являются ключами данных в других 5 таблицах и вывести все значеня по их ключам каждой записи?
Спасибо.
если да, то проблем не должно быть, запрос должен быть:
Код:
или тебе надо выбрать данные из нескольких таблиц?
http://forum.codenet.ru/showthread.php?t=24971
что то я тебя не очень поняла:
Цитата:
создать запрос на выборку из таблицы с 5 полями
Цитата:
вывести все значеня по их ключам каждой записи
2jons Самое быстрое и чтоб не думать это
Код:
SELECT * FROM table // Тут у тебя будут хранится ключи
SELECT *.table1, *.table2, *.table3, *.table4, *.table5 FROM table1, table2, table3, table4, table5 WHERE
// И тут просто подстанавливаешь значение из 1 запроса.
SELECT *.table1, *.table2, *.table3, *.table4, *.table5 FROM table1, table2, table3, table4, table5 WHERE
// И тут просто подстанавливаешь значение из 1 запроса.
Постараюсь точнее объяснить детали:
формат 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) полей со значением ключей из тех полей и нужно чтто-бы одним запросом выполнялась подстановка.
Код:
SELECT *
FROM Таблица2 INNER JOIN (Таблица1 INNER JOIN Таблица3 ON Таблица1.Field1=Таблица3.Field1) ON Таблица2.Field2=Таблица3.Field2;
FROM Таблица2 INNER JOIN (Таблица1 INNER JOIN Таблица3 ON Таблица1.Field1=Таблица3.Field1) ON Таблица2.Field2=Таблица3.Field2;
А вот с подстановочкой что? Из общей таблицы нужно подставить значения в 5 других?
попробую выразить графически
Код:
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);
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 - один ко многим)
Из всех рассмотренных и придуманных вариантов остановился на:
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 та самая таблица с пятью ключами а остальные включения таблиц не привожу для краткости*/
Готов рассмотреть любую критику или оптимальные варианты
Я только начал изучать SQL и у меня возникла такая проблема:
Как ,если это возможно, в mySQL4.* создать запрос на выборку из таблицы с 5 полями ,значения которых являются ключами данных в других 5 таблицах и вывести все значеня по их ключам каждой записи?
Спасибо.[/QUOTE]
Используй left join или right join