Запрос в БД icms2

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 19 июня 2015 в 20:27
Прошу помочь составить запрос в БД

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

Нужно еще исключить из запроса записи, если записи с таким же id = $id есть в базе baza2?
#2 19 июня 2015 в 21:18
именно в базе2 или в таблице2?
#3 19 июня 2015 в 21:19

именно

kreator
да в таблице с названием baza2 (первая таблица baza)
#4 19 июня 2015 в 21:20
И еще вопрос id может быть несколько в baza с одним значением, или значение id уникально?
#5 19 июня 2015 в 21:29
в baza — id уникально

а так думаю это без разницы. Запрос может вернуть как 1 запись так и массив. Главное чтоб в этой записи (массиве) отсутствовали записи с id который есть с id в baza2
#6 19 июня 2015 в 21:34
kreator,
  1. $res= $this->db->getRows('baza',"id not in (select id from cms_baza2) and id={$id}");
  2.  
вы же это внутри модели какой-то делаете?
#7 19 июня 2015 в 21:48
да, просто в двойке можно дописать такими же фильтрами как в моем первом примере.
Если же еще команды: join, joinLeft, joinLeftInner, joinLeftOuter, joinRight, и т.д.
Предусмотренные моделью движка, которыми можно составить такой фильтр.
#8 19 июня 2015 в 21:55
kreator, да я знаю что такое фильтры и как ими писать)) Но в данном случае при таком условии (исключить из запроса записи, если записи с таким же id = $id есть в базе baza2) варианты с фильтрами не катят

Может и можно извратиться, но вы думаете это будет лучше? — если мой код работает, то работать он будет точно не медленнее.чем стопка фильтров. И визуально он очень простой и наглядный
#9 19 июня 2015 в 21:56
kreator, не всегда можно обойтись методами модели, иногда приходится спускаться ниже… к методами класса database. И на самом деле не так редко, потому что модель довольно ограничена.

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

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


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

  1. $res = $this->filterEqual('id', $id)
  2. ->get('baza');
#10 19 июня 2015 в 22:10
ну да, пасиб, работает)
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.