Journal    Friends    Archive    User Info    memories
 

St. Hell - Добавить комментарий


[info]kernel
24 Ноя, 2008 23:39

Наверное, у меня сломались мозги. Попытаюсь сформировать задачу:
Есть таблица с полями x и y. Есть массив из n пунктов. Для одного x может быть много y. Надо получить все x для которых выполняется условие, что все элементы массива совпадают с y. Если бы для каждого x была отдельная таблица, то задача решалась бы элементарно (но не слишком оптимально для базы данных, поскольку было бы много join).
На ум приходит два решения:
1. SELECT x, count(*) as c FROM table WHERE y IN array GROUP BY x;
if(c==n) res[]=x;
Здесь понятно, c не может быть больше n, а если меньше - то выполняются не все условия.

2. создать в базе процедуру, которая, в общем-то будет делать тоже самое, но уже на своем уровне, так что решение на самом деле одно.

Это решение мне кажется грубым и извращенным, плюс - это только часть задачи и как ячейка из мозаики выглядит не слишком приглядно...

Read Comments

Reply

From:
Username:
Password:
Subject:
No HTML allowed in subject
  
Message:

Notice! This user has turned on the option that logs your IP address when posting.