Запрос в БД icms2

 
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1840
Прошу помочь составить запрос в БД

Код PHP:
  1.  
  2. $res = $this->filterEqual('id', $id);
  3. $res = $this->get('baza');
  4.  
Этот запрос выведет все записи из baza у которых id = $id

Нужно еще исключить из запроса записи, если записи с таким же id = $id есть в базе baza2 ?
Редактировалось: 1 раз (Последний: 19 июня 2015 в 20:28)
Мой блог с плюшками
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
именно в базе2 или в таблице2?
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1840
kreator:
именно
да в таблице с названием baza2 (первая таблица baza)
Мой блог с плюшками
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
И еще вопрос id может быть несколько в baza с одним значением, или значение id уникально?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1840
в baza - id уникально

а так думаю это без разницы. Запрос может вернуть как 1 запись так и массив. Главное чтоб в этой записи (массиве) отсутствовали записи с id который есть с id в baza2
Мой блог с плюшками
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 555
kreator,
Код PHP:
  1. $res= $this->db->getRows('baza',"id not in (select id from {#}baza2) and id={$id}");
  2.  
вы же это внутри модели какой-то делаете?
Редактировалось: 2 раз (Последний: 19 июня 2015 в 21:43)
оптимизирую помаленьку
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1840
да, просто в двойке можно дописать такими же фильтрами как в моем первом примере.
Если же еще команды: join, joinLeft, joinLeftInner, joinLeftOuter, joinRight, и т.д.
Предусмотренные моделью движка, которыми можно составить такой фильтр.
Мой блог с плюшками
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 555
kreator, да я знаю что такое фильтры и как ими писать)) Но в данном случае при таком условии (исключить из запроса записи, если записи с таким же id = $id есть в базе baza2) варианты с фильтрами не катят

Может и можно извратиться, но вы думаете это будет лучше? - если мой код работает, то работать он будет точно не медленнее .чем стопка фильтров. И визуально он очень простой и наглядный
оптимизирую помаленьку
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 555
kreator, не всегда можно обойтись методами модели, иногда приходится спускаться ниже.. к методами класса database. И на самом деле не так редко, потому что модель довольно ограничена.

Еще добавлю, про первый пример

$res = $this->filterEqual('id', $id);

так не надо писать, фильтр ничего не возвращает. Правильнее будет

Код PHP:
  1. $res = $this->filterEqual('id', $id)
  2. ->get('baza');
Редактировалось: 1 раз (Последний: 19 июня 2015 в 22:05)
оптимизирую помаленьку
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1840
ну да, пасиб, работает)
Мой блог с плюшками
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: