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