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

Форум MySQL

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

 

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

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

тема: Перекрёстный запрос
 
 автор: dimaxz   (26.02.2010 в 08:00)   письмо автору
 
 

как в mysql осуществить перекрёсный запрос?? равернуть таблицу (записи из второй таблицы будут являтся столбцами для записей из первой)

  Ответить  
 
 автор: Trianon   (26.02.2010 в 08:55)   письмо автору
 
   для: dimaxz   (26.02.2010 в 08:00)
 

В общем случае строки и столбцы в любом SQL отличаются принципиально -потоком одно другим становиться не может.

В частном случае возможны подобные выборки для конкретных столбцов. Но не зная схемы БД тут подсказывать нечего.

  Ответить  
 
 автор: dimaxz   (26.02.2010 в 10:10)   письмо автору
220 Кб
 
   для: Trianon   (26.02.2010 в 08:55)
 

вот база в access 2003

  Ответить  
 
 автор: Trianon   (26.02.2010 в 10:26)   письмо автору
 
   для: dimaxz   (26.02.2010 в 10:10)
 

Вообще мне приходила мысль как-нибудь установить и поизучать MS Access. Даже несколько раз.
Но почему-то пока что не претворялась в жизнь. Полагаете - оно того стоит?

  Ответить  
 
 автор: dimaxz   (26.02.2010 в 10:30)   письмо автору
 
   для: 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 */;

  Ответить  
 
 автор: Trianon   (26.02.2010 в 11:57)   письмо автору
 
   для: 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. Знаете ли Вы, что:
Контролёр - это такой человек.
А контроллер - это такой механизьм.

  Ответить  
 
 автор: dimaxz   (26.02.2010 в 12:50)   письмо автору
 
   для: Trianon   (26.02.2010 в 11:57)
 

знаю мне нужно динамические алиасы

  Ответить  
 
 автор: Trianon   (26.02.2010 в 13:15)   письмо автору
 
   для: dimaxz   (26.02.2010 в 12:50)
 

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

Более точно - всю эту динамику без особых усилий можно (и нужно) обеспечить на стороне приложения - т.е. средствами php.

  Ответить  
 
 автор: dimaxz   (26.02.2010 в 10:33)   письмо автору
153.4 Кб
 
   для: Trianon   (26.02.2010 в 10:26)
 

должно получится то что в прикрепленном изображении

  Ответить  
 
 автор: dimaxz   (26.02.2010 в 14:13)   письмо автору
 
   для: dimaxz   (26.02.2010 в 10:33)
 

вообщем я так понял что ответа мне нет, жаль на каком то форуме видел решение(

  Ответить  
Rambler's Top100
вверх

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