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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Матричный запрос, Если можно так назвать :) 
:(
    Опции темы
IZ@TOP
Дата 11.7.2005, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



В общем есть две таблицы:

Код

# таблица с некими данными
create table cv_data (
  id int not null auto_increment,
  name varchar(100),
  primary key(id)
);

# таблица связывающая данные из первой таблицы
create table cv_bind (
  c_id,
  c_parent,
  primaray key(c_id, c_parent)
);

# Так вот, допустим есть у нас несколько записей в первой таблице:
insert into cv_data (`id`, `name`) values (1, 'colors'), (2, 'Red 100'), ('3, Green'), (4, 'Orange'),
(5, 'sizes'), (6, '100'), (7, '300'), (8, '500 green');

# и связка этих данных
insert into cv_bind (`c_id`, `c_parent`) values (2,1),(3,1),(4,1),(6,5),(7,5),(8,5),(2,5),(7,1);


Теперь представим что мы запросили все что связано с colors. Если мы пошлем запрос на выборку данных посредством связи с cv_bind где c_parent = 1, это нам даст записи с идентификаторами 2,3,4 и 7. Проблема в том, что мне нужно отобразить еще и другие связи, допустим если у нас запись привязана еще к какой либо записи, как в случае с 7 и 2 которые привзяаны к 1,5 и 5,1. Т.е. на выходе мы должны получить примерно такую таблицу:

Запрос colors
id, name, sub
2 Red 100 sizes
3 Green
4 Orange

Заранее спасибо.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
DENNN
Дата 11.7.2005, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Ничего не понял.
Ты хочешь получить все записи,у которых c_parent = 1 - ты их получил через where.
Теперь ты хочешь найти с какими еще id связаны записи, которые связаны с c_parent = 1?
Проще наверное сделать create temporary table выбрать туда все с c_parent = 1, а затем из cv_bind выбирать те, у которых есть c_id из временной таблицы.

P.S. А зачем такие сложные связи?
PM ICQ   Вверх
IZ@TOP
Дата 11.7.2005, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



DENNN, затем что структура разделов матричная.
Я сейчас пробую в два запроса сделать.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
IZ@TOP
Дата 11.7.2005, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



В общем обошлись несколько запросов.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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