|
|
|
| как в mysql осуществить перекрёсный запрос?? равернуть таблицу (записи из второй таблицы будут являтся столбцами для записей из первой) | |
|
|
|
|
|
|
|
для: dimaxz
(26.02.2010 в 08:00)
| | В общем случае строки и столбцы в любом SQL отличаются принципиально -потоком одно другим становиться не может.
В частном случае возможны подобные выборки для конкретных столбцов. Но не зная схемы БД тут подсказывать нечего. | |
|
|
|
|
 220 Кб |
|
|
для: Trianon
(26.02.2010 в 08:55)
| | вот база в access 2003 | |
|
|
|
|
|
|
|
для: dimaxz
(26.02.2010 в 10:10)
| | Вообще мне приходила мысль как-нибудь установить и поизучать MS Access. Даже несколько раз.
Но почему-то пока что не претворялась в жизнь. Полагаете - оно того стоит? | |
|
|
|
|
|
|
|
для: Trianon
(26.02.2010 в 10:26)
| | предположил что входит в стандартный набор офиса, вот дамп
-- Скрипт сгенерирован Devart dbForge Studio for MySQL, Версия 4.0.206.1
-- Дата: 26.02.2010 10:29:45
-- Версия сервера: 5.0.45-community-nt
-- Версия клиента: 4.1
--
-- Отключение внешних ключей
--
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS = @@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS = 0 */;
USE test;
--
-- Описание для таблицы el_int
--
CREATE TABLE el_int(
id INT(10) DEFAULT NULL,
el_id INT(10) DEFAULT NULL,
value INT(10) DEFAULT NULL,
type_id INT(10) DEFAULT NULL
)
ENGINE = MYISAM
AVG_ROW_LENGTH = 17
CHARACTER SET cp1251
COLLATE cp1251_general_ci;
--
-- Описание для таблицы element
--
CREATE TABLE element(
id INT(10) DEFAULT NULL,
name VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
)
ENGINE = MYISAM
AVG_ROW_LENGTH = 24
CHARACTER SET cp1251
COLLATE cp1251_general_ci;
--
-- Описание для таблицы type
--
CREATE TABLE type(
id INT(10) DEFAULT NULL,
name VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
code VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
)
ENGINE = MYISAM
AVG_ROW_LENGTH = 34
CHARACTER SET cp1251
COLLATE cp1251_general_ci;
--
-- Вывод данных для таблицы el_int
--
INSERT INTO el_int VALUES
(1, 1, 4, 1),
(2, 1, 10, 2),
(3, 1, 6, 3),
(4, 2, 1, 1),
(5, 2, 6, 2),
(6, 2, 4, 3);
--
-- Вывод данных для таблицы element
--
INSERT INTO element VALUES
(1, 'Задача 1'),
(2, 'Задача 2'),
(3, 'Задача 3');
--
-- Вывод данных для таблицы type
--
INSERT INTO type VALUES
(1, 'автор', 'avtor'),
(2, 'исполнитель', 'ispol'),
(3, 'контроллер', 'kontr');
--
-- Включение внешних ключей
--
/*!40014 SET FOREIGN_KEY_CHECKS = @OLD_FOREIGN_KEY_CHECKS */;
|
| |
|
|
|
|
|
|
|
для: dimaxz
(26.02.2010 в 10:30)
| | Естественная практика в таких случаях LEFT JOIN с алиасами уточняющих таблиц.
element e
LEFT JOIN el_int ie_a ON ei_a.el_id = e.id AND ei_a.type_id = 1
LEFT JOIN el_int ie_i ON ei_i.el_id = e.id AND ei_a.type_id = 2
...
|
дальше выбираете нужные поля из нужных алиасов
PS. Знаете ли Вы, что:
Контролёр - это такой человек.
А контроллер - это такой механизьм. | |
|
|
|
|
|
|
|
для: Trianon
(26.02.2010 в 11:57)
| | знаю мне нужно динамические алиасы | |
|
|
|
|
|
|
|
для: dimaxz
(26.02.2010 в 12:50)
| | Алиасы не могут быть динамическими.
Алиасы - это метаданные. метаданные в общем случае в потоке данных проходить не должны.
Более точно - всю эту динамику без особых усилий можно (и нужно) обеспечить на стороне приложения - т.е. средствами php. | |
|
|
|
|
 153.4 Кб |
|
|
для: Trianon
(26.02.2010 в 10:26)
| | должно получится то что в прикрепленном изображении | |
|
|
|
|
|
|
|
для: dimaxz
(26.02.2010 в 10:33)
| | вообщем я так понял что ответа мне нет, жаль на каком то форуме видел решение( | |
|
|
|