Форум: "Начинающим";
Текущий архив: 2010.10.31;
Скачать: [xml.tar.bz2];
Внизпомогите с алгоритмом Найти похожие ветки
← →
linuxoid (2010-08-10 09:52) [0]Здравствуйте! помогите составить алгоритм для сравнения элементов в базе.
есть две таблицы:
firsttable
id_f | name | status
1 name1 false
2 name2 true
3 name3 false
secondtable
id_s | name | status | n_id_f
1 data1 false 1
2 data2 false 1
3 data3 true 1
4 data4 false 1
5 data5 true 2
6 data6 true 2
5 data7 false 3
6 data8 false 3
задача такая
делаем запрос (select * from secondtable where n_id_f=:firsttable.id_f)
отсюда мы получим первые четыре записи, затем должны проверить их статусы. если все равны true, то в статус для записи в первой таблице, где id_f=1, ставим true. если все false то false. если смешанный - false. так должны сделать для всех записей с первой таблицы.
← →
Ega23 © (2010-08-10 09:58) [1]
update t1 set t1.status = t1.status && t2.status
from firsttable t1 inner join second table t2 on t1.id_f=t2.id_s
← →
Ega23 © (2010-08-10 10:02) [2]Это если я правильно постановку задачи понял.
← →
12 © (2010-08-10 10:03) [3]все это можно запросом сделать
truе за 0
false за 1
сумма с группировкой по n_id_f
если =0, все были true -> true
если >0, были false -> false
← →
linuxoid (2010-08-10 10:30) [4]спс!
вот еще один вопрос.
а если будет три исхода.
если все true = 0
если все false = 1
если и true и false = -1(или по-другому обозначить)
как здесь поступить?
← →
12 © (2010-08-10 10:35) [5]
> linuxoid (10.08.10 10:30) [4]
ты сейчас к кому?
[3] или [1]?
если 3, то
если и true и false , то
сумма с группировкой по n_id_f
если =0, все были true
если =count(), все были false
от 0 до count() - были и те и те
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.10.31;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c