Inicio > Symfony > Como hacer una consulta con “NOT IN” en criteria

Como hacer una consulta con “NOT IN” en criteria

Amigos del blog. Hace unos dias, me enfrente con un dilema para realizar desde criteria, una consulta SQL, utilizando en el campo WHERE la clausula “NOT IN”.

Despues de mucha investigacion, les dejo una forma de hacerlo:

consulta sql:

  1. SELECT * FROM my_table_1 WHERE id NOT IN (
  2. SELECT id FROM my_table_2
  3. );
consulta en criteria:

  1. $c = new Criteria;
  2. $not_in_query = ‘my_table_1.id NOT IN (
  3. SELECT id
  4. FROM my_table_2)’;
  5. $c->add(MyTable1Peer::ID, $not_in_query, Criteria::CUSTOM);
  6. $result = MyTable1Peer::doSelect($c);

El secreto esta en la versatilidad del atributo “CUSTOM” que permite forzar a criteria para lograr la consulta

Compartir información en: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • MisterWong
  • Y!GG
  • Webnews
  • Digg
  • del.icio.us
  • StumbleUpon
  • Reddit
  • Ask
  • De.lirio.us
  • Facebook
  • LinkedIn
  • Live-MSN
  • MySpace
  • YahooMyWeb
  • email
  • Google Bookmarks
  • TwitThis
  • YahooBuzz
Categories: Symfony Tags:
  1. Sin comentarios aún.
  1. Sin trackbacks aún.