Leres 0 Denunciar post Postado Dezembro 11, 2011 Galera, to fazendo uma consulta INNER JOIN como essa a seguir: Minhas tabelas: t1(id,recurso,dia,etc...) t2(codusuario,nome,email,login,etc...) t3(nome,tipo,info,etc...) Consulta: SELECT t1.id, t1.recurso, t1.dia, t2.nome, t2.email FROM t1 INNER JOIN t2 where t1.id = t2.codusuario Eu gostaria que a consulta acima filtrasse apenas os recursos do tipo X, sendo que t1.recurso e t3.nome são as minhas "chaves estrangeiras" neste caso. alguém tem alguma sugestão? Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Dezembro 11, 2011 Você pode aplicar isso no WHERE .. SELECT t1.id, t1.recurso, t1.dia, t2.nome, t2.email FROM t1 INNER JOIN t2 WHERE t1.id = t2.codusuario AND t1.recurso = 'X' Dica: não use t1, t2, t3, t4 para distinguir nomes de tabelas na query, isso vai acabar te confundindo, e prejudica a interpretação da sql. Eu modificaria sua query para: SELECT recursos.id , recursos.recurso , recursos.dia , usuario.nome , usuario.email FROM recursos INNER JOIN usuarios ON usuarios.codusuario = recursos.id WHERE recursos.recurso = 'X' Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Dezembro 11, 2011 Sua dúvida não tem a ver com PHP. Tente postar na área correta na próxima. Movido: PHP :seta: MySQL Compartilhar este post Link para o post Compartilhar em outros sites
Leres 0 Denunciar post Postado Dezembro 12, 2011 Você pode aplicar isso no WHERE .. SELECT t1.id, t1.recurso, t1.dia, t2.nome, t2.email FROM t1 INNER JOIN t2 WHERE t1.id = t2.codusuario AND t1.recurso = 'X' Dica: não use t1, t2, t3, t4 para distinguir nomes de tabelas na query, isso vai acabar te confundindo, e prejudica a interpretação da sql. Eu modificaria sua query para: SELECT recursos.id , recursos.recurso , recursos.dia , usuario.nome , usuario.email FROM recursos INNER JOIN usuarios ON usuarios.codusuario = recursos.id WHERE recursos.recurso = 'X' Eu usei t1,t2,t3 só pra elaborar a pergunta... estou usando outros nomes.... Essa dica sua não soluciona o problema. A informação a ser filtrada é o tipo= 'X' da tabela t3 que não aparece nas cláusulas anteriores. A consulta: SELECT t1.id, t1.recurso, t1.dia, t2.nome, t2.email FROM t1 INNER JOIN t2 WHERE t1.id = t2.codusuario Me devolve todos os resultados e eu quero filtrar os resultados que são do tipo = 'X' e a relação entre o resultado e tabela t3 é t1.recurso e t3.recurso que quero que seja filtrado pelo t3.tipo='x' Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Dezembro 12, 2011 falta o join com a t3 (ou não entendi a questão). Compartilhar este post Link para o post Compartilhar em outros sites
Torden 0 Denunciar post Postado Dezembro 12, 2011 Cara, a sua explicação ta bem confusa... O atributo "X", pelo que entendi, está armazenado na t3. Caso sim, você só precisa realizar o join nessa tabela. Caso não, explica melhor. Compartilhar este post Link para o post Compartilhar em outros sites
marcelo.lipienski 1 Denunciar post Postado Dezembro 13, 2011 Por favor, forneça os scripts de criação das tabelas juntamente com suas chaves primárias e estrangeiras. Compartilhar este post Link para o post Compartilhar em outros sites