Oi preciso fazer um select aninhado em MySQL porém o que eu estou tentando não está dando certo por exemplo caso ele não encontre nenhum dado referente a aquele usuário em uma tabela então retorne o os dados do primeiro select é mais ou menos assim
SELECT * FROM teste1 WHERE (SELECT * FROM teste2 WHERE teste2.id_usuario = 0 AND teste2.id_conta!=teste1.id) NOT EXISTS
//por exemplo se a tabela teste2 não for encontrado nenhum dado então execute o primeiro select da tabela teste1
Pressuponho que você está utilizando FK entre as duas tabelas certo? E Quer listar todos os registros independente se tenha referência ou não tabela 2. Porque não utilizar usar junção de tabelas utilizando left join que retornará ambos os registros?
[quote=ederfreitas]Pressuponho que você está utilizando FK entre as duas tabelas certo? E Quer listar todos os registros independente se tenha referência ou não tabela 2. Porque não utilizar usar junção de tabelas utilizando left join que retornará ambos os registros?
[quote=daveiga]Bem, tente usar o IN no lugar do EXISTS , assim:
Ns realidade, o EXISTS deverá ser bem mais eficiente que o IN. O EXISTS irá parar assim que encontrar um registo que obedeça à condição, enquanto o IN irá executar todo o select para depois comparar valores.
[quote=pmlm][quote=daveiga]Bem, tente usar o IN no lugar do EXISTS , assim:
Ns realidade, o EXISTS deverá ser bem mais eficiente que o IN. O EXISTS irá parar assim que encontrar um registo que obedeça à condição, enquanto o IN irá executar todo o select para depois comparar valores.[/quote]