Есть таблица (code_model, code_elem, code_znach_elem) 1;2;4 1;8;6 2;11;132 1;7;2 3;8;11 делаю запрос select distinct (code_model) from таблица where (code_elem=2 and code_zhach_elem=4) and (code_elem=8 and code_zhach_elem=6) and (code_elem=7 and code_zhach_elem=2) Результат 0 Хотя должен вернуть code_model=1 В чем проблема? Вроде все правильно?
неа Переводи на русский язык: выбрать неповторяющиеся (code_model) из таблица где (code_elem=2 и code_zhach_elem=4) и (code_elem=8 и code_zhach_elem=6) и (code_elem=7 и code_zhach_elem=2) то есть, ты задаешь противоречивые условия. Тебе нужна связка групп условий по ИЛИ а не по И
изложу запрос так "надо выбрать неповторяющиеся (code_model) для которых в таблице есть такие строки ( code_elem=2 и code_zhach_elem=4), (code_elem=8 и code_zhach_elem=6), (code_elem=7 и code_zhach_elem=2)" ИЛИ не подходит - так как пр этом запрос работает некоректно необходимо выполнение наявность всех строк, а не хотябы одной можно как-то реализовать?
неа. создавай 3 запроса, и по очереде их выводи. хотя можешь попробовать - но врятли получиться code_elem=2,4,8 и code_zhach_elem=4,6,11)
тогда нам поможет оператор Do while PHP: <? $od=1; do { if ($od==1) { $uuu='2'; $uuz='4'; } if ($od==2) { $uuu='8'; $uuz='6'; } $query = "select * from table WHERE code_elem= '$uuu' and code_zhach_elem='$uuz' order by code_elem desc"; $result = mssql_query( $query ); $kkk = mssql_num_rows($result); } while (++$od<=2) ?>
то как же переделать этот запрос? [sql]select distinct (code_model) from таблица where (code_elem=2 and code_zhach_elem=4) and (code_elem=8 and code_zhach_elem=6) and (code_elem=7 and code_zhach_elem=2)[/sql]