Journal    Friends    Archive    User Info    memories
 

St. Hell - Ноябрь, 24, 2008


24 Ноя, 2008 23:35

http://www.simadmin.ru/

2 комментария - Оставить комментарий


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. создать в базе процедуру, которая, в общем-то будет делать тоже самое, но уже на своем уровне, так что решение на самом деле одно.

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

1 комментарий - Оставить комментарий

Back a Day - Forward a Day