Filipa 0 Posted May 7, 2019 Report Share Posted May 7, 2019 Eu tenho 3 tabelas: "Terceiros", "Morada_Terceiro", "Contactos_Terceiro". O objetivo era: seria inserido um terceiro, o mesmo seria listado, fosse-lhe atribuído uma morada e um contacto, no entanto gostaria que fosse possível atribuir várias moradas a um só terceiro. Utilizei primeiro o INNER JOIN nas 3 tabelas e não foi possível, passei para o LEFT JOIN e quando era introduzido mais que uma morada ou contacto a um terceiro era listado a mesma informação mais que uma vez, acabei por utilizar o RIGHT JOIN e o FULL JOIN e nada. //Tabela Terceiros $sql="SELECT Terceiros.*, Email, Telefone, Telemovel, TipoC, Morada, Localidade, CodPostal FROM ((Terceiros INNER JOIN Contactos_Terceiro on Terceiros.Numero = Contactos_Terceiro.Numero ) INNER JOIN Morada_Terceiro on Terceiros.Numero = Morada_Terceiro.Numero )"; if(isset($pesq)) $sql.=" where Nome like '$pesq' "; $sql.=" limit $ini, $tp"; $res=$lig->query($sql); //Tabela Contactos_Terceiro $sql="SELECT Contactos_Terceiro.*, Nome FROM Contactos_Terceiro INNER JOIN Terceiros on (Terceiros.Numero = Contactos_Terceiro.Numero)"; if(isset($pesq)) $sql.=" where Nome like '$pesq'"; $sql.=" limit $ini, $tp"; $res=$lig->query($sql); //Tabela Morada_Terceiro $sql="SELECT Morada_Terceiro.*, Nome FROM Morada_Terceiro INNER JOIN Terceiros on (Terceiros.Numero = Morada_Terceiro.Numero)"; if(isset($pesq)) $sql.=" where Nome like '$pesq'"; $sql.=" limit $ini, $tp"; $res=$lig->query($sql); Link to post Share on other sites
antseq 83 Posted May 7, 2019 Report Share Posted May 7, 2019 3 horas atrás, Filipa disse: Eu tenho 3 tabelas: "Terceiros", "Morada_Terceiro", "Contactos_Terceiro". O objetivo era: seria inserido um terceiro, o mesmo seria listado, fosse-lhe atribuído uma morada e um contacto, no entanto gostaria que fosse possível atribuir várias moradas a um só terceiro. Utilizei primeiro o INNER JOIN nas 3 tabelas e não foi possível, passei para o LEFT JOIN e quando era introduzido mais que uma morada ou contacto a um terceiro era listado a mesma informação mais que uma vez, acabei por utilizar o RIGHT JOIN e o FULL JOIN e nada. Viva, Fiquei na dúvida se o seu problema está no inserir (INSERT) da informação (Terceiros, Contactos e Moradas)? ou se já tem o INSERT feito nas 3 tabelas e está a ter problemas na consulta (SELECT/JOIN) das tabelas? * na consulta, se seleccionar parte da tabela "master" [Terceiros] + (join) "detail table" [Contactos ou Moradas], terá sempre "repetido" os dados "master" seleccionados. * porque não faz 3 selects na consulta de um determinado Terceiro "xxx": - CABEÇALHO: SELECT * FROM Terceiros WHERE Terceiros.Numero = xxx - GRELHA-CONTACTOS: SELECT * FROM Contactos_Terceiro WHERE Contactos_Terceiro.Numero = xxx - GRELHA-MORADAS: SELECT * FROM Morada_Terceiro WHERE Morada_Terceiro.Numero = xxx cps, Link to post Share on other sites
Filipa 0 Posted May 7, 2019 Author Report Share Posted May 7, 2019 O meu problema é no JOIN mesmo, o insert já se encontra feito sem nenhum problema. O problema é que eu não queria fazer uma consulta de um determinado Terceiro, mas sim deles todos. O que pretendo fazer é o seguinte: tenho um bootstrap popup onde quando é clicado aparece informações relacionados com o Terceiro selecionado, a sua morada e contactos. Aquele ID pode pussuir várias moradas, ou até mesmo contactos e é exatamente onde está a minha dúvida. Quando insiro uma nova morada um ID que já possui a mesma, duplica-me os dados, vou explicar melhor ainda: O que deveria aparecer: 112 Joana -> Rua da Santa da Maria, 964867594, 213468658 112 Joana -> Rua da Praceta de Jesus Cristo, 934568794, 315839576 O que aparece: 112 Joana -> Rua da Santa da Maria, 964867594, 213468658 112 Joana -> Rua da Santa da Maria, 964867594, 213468658 Link to post Share on other sites
M6 150 Posted May 7, 2019 Report Share Posted May 7, 2019 Consegues mostrar o modelo de dados e a query que tens relativa a esse resultado? 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to post Share on other sites
Filipa 0 Posted May 7, 2019 Author Report Share Posted May 7, 2019 (edited) 29 minutos atrás, M6 disse: Consegues mostrar o modelo de dados e a query que tens relativa a esse resultado? Em relação ao modelo de dados, aqui não me perimitem enviar imagens e a query é o que se encontra por baixo da pergunta Edited May 7, 2019 by Filipa Link to post Share on other sites
M6 150 Posted May 7, 2019 Report Share Posted May 7, 2019 Tens 3 queries na pergunta... 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to post Share on other sites
Filipa 0 Posted May 7, 2019 Author Report Share Posted May 7, 2019 (edited) 2 minutos atrás, M6 disse: Tens 3 queries na pergunta... É esta: $sql="SELECT Terceiros.*, Email, Telefone, Telemovel, TipoC, Morada, Localidade, CodPostal FROM ((Terceiros INNER JOIN Contactos_Terceiro on Terceiros.Numero = Contactos_Terceiro.Numero ) INNER JOIN Morada_Terceiro on Terceiros.Numero = Morada_Terceiro.Numero )"; Edited May 7, 2019 by Filipa Link to post Share on other sites
M6 150 Posted May 8, 2019 Report Share Posted May 8, 2019 À priori a query parece-me bem, só vendo o modelo e os dados. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to post Share on other sites
Filipa 0 Posted May 8, 2019 Author Report Share Posted May 8, 2019 7 minutos atrás, M6 disse: À priori a query parece-me bem, só vendo o modelo e os dados. Eu até enviaria mas aqui não me permitem enviar anexos Link to post Share on other sites
M6 150 Posted May 8, 2019 Report Share Posted May 8, 2019 Coloca a imagem num site de partilha de imagens e mete aqui o link. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now