CC
Como fazer um select not in to select ?
Olá galera. Estou com uma duvida de como fazer um select buscar dados dentro de outro select. Resolvi a primeira parte, mas não soube fazer o NOT IN SELECT .....
Segue o select em instrução pura SQL. Os parâmetros estão em caixa alta. Eu consegui fazer a primeira parte do select e vou deixar o codigo de como eu fiz. Estou precisando só fazer o segundo SELECT. Se alguem puder me dar uma luz, vou ficar muito agradecido. Esse método está rodando em um Restful Server
select * from servico where ((id_veiculo = W_VEICULO and data_aceite='0000-00-00 00:00:00') or id_veiculo = 0) and W_VEICULO not in
(select id_veiculo from servico_rejeitado where id_servico = W_SERVICO)
Segue o select em instrução pura SQL. Os parâmetros estão em caixa alta. Eu consegui fazer a primeira parte do select e vou deixar o codigo de como eu fiz. Estou precisando só fazer o segundo SELECT. Se alguem puder me dar uma luz, vou ficar muito agradecido. Esse método está rodando em um Restful Server
select * from servico where ((id_veiculo = W_VEICULO and data_aceite='0000-00-00 00:00:00') or id_veiculo = 0) and W_VEICULO not in
(select id_veiculo from servico_rejeitado where id_servico = W_SERVICO)
- <?php
- public static function onCheckNewService( $request )
- {
- TTransaction::open('sgd');
- $repository = new TRepository('Servico');
- $criteria1 = new TCriteria;
- $criteria1->add(new TFilter('id_veiculo', '=', $request['id_veiculo']));
- $criteria1->add(new TFilter('data_aceite', '=', '0000-00-00 00:00:00'));
- $criteria2 = new TCriteria;
- $criteria2->add(new TFilter('id_veiculo', '=', '0'));
- $criteria = new TCriteria;
- $criteria->setProperty('limit', '1');
- $criteria->add($criteria1, TExpression::OR_OPERATOR);
- $criteria->add($criteria2, TExpression::OR_OPERATOR);
- $all = $repository->load($criteria);
- foreach ($all as $dados)
- {
- $response[] = $dados->toArray();
- }
- TTransaction::close();
- return $response;
- }
- ?>
ola Claudio!
deve ser isso :)
Luis Alberto, muito obrigado. Eu cometi um erro no select que enviei. Na verdade o segundo select é:
Mas voce conseguiu me passar o conceito de como usar o TCriteria. Ficou bem mais claro para mim. Aqui na minha versão do Adianti, eu tive que instanciar cada objeto TCriteria antes de usá-lo, senão dava erro. Segue o codigo final: