Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
estou realizando esta consulta, tenho que retornar o nome do município referente ao código do município cadastrado no banco.
na tabela municipio_ibge tenho dois campos cod_municipio e nome_municipio.
na tabela de oficio tenho dois campos que armazena o código do municipio de origem destino.
tentei fazer assim no meu select.
$sql = mysql_query("SELECT * FROM sicof_oficio JOIN municipio_ibge WHERE tp_oficio like '$pesq_tp_oficio' and (mun_dest_ofi_sicof =cod_municipio AND mun_dest_ofi_sicof=cod_municipio)");
mais não me retornou nada.
att.
Tentei Assim:
$sql = mysql_query("SELECT * FROM sicof_oficio,municipio_ibge WHERE tp_oficio = '$pesq_tp_oficio' AND sicof_oficio.mun_dest_ofi_sicof = municipio_ibge.cod_municipio AND sicof_oficio.mun_orig_ofi_sicof = municipio_ibge.cod_municipio");
Não me retornou nada.
Meu objetivo de ligar as tabela é exibir o nome dos municípios dos código gravados na tabela de oficios, já cheguei a exibir, mais só conseguia exibir um dos dois, ou município de origem ou de destino.
Alguém tem alguma sugestão?
quero exibir o nome dos municípios do qual pertence o código.
Ex:
tabela oficio tenho os códigos:
230560:
230650:
na tabela municípios tenho o nome dos municípios e os códigos referente ao municípios.
[]s
Qual coluna da tabela do IBGE tem o mesmo valor da coluna da outra tabela?
Qual coluna da tabela do IBGE tem o mesmo valor da coluna da outra tabela?
Outras duas colunas municipio_origem e municipio_destino.
estou tentando aqui.
[]s
>
Outras duas colunas municipio_origem e municipio_destino.
estou tentando aqui.
[]s
cod_municipio:Tabela municipios_ibge
municipio_origem e municipio_destino: Tabela sicof_oficios
[]s
Prezados,
Estou numa situação já quebrei a cabeça e não sai de maneira nenhum.
Preciso realizar um UPDATE com INNER JOIN.
EX:
[table=TABELA A][tr]ID WEIGHT
1 0
2 0
3 0
4 0
5 0
6 0
[/tr][/table]
[table=TABELA B]ID NAME
1 CILINDRO
2 ROLO
3 CHIP
4 LAMINA
5 CHIP
6 PO
[/table]
Preciso fazer um UPDATE dos pesos na tabela A porém preciso fazer um INNER JOIN com tabela A para filtrar o texto "chip%". Ou seja preciso colocar o peso de 0.020 em todos os produtos que se iniciam com CHIP.
Tentei de varias formas mas resulta no seguinte erro:
"Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from .product inner join .product_description on .product_description.product_i' at line 2"
segue comando:
update .product set weight= 0.020
from .product inner join .product_description
on .product_description.product_id = .product.product_id
where name like "chip%"
Por favor , preciso muito disso pois são muitos produtos para fazer manual um por um.
Agradeço...
santos_s, se ainda não resolveu e se entendi bem,
sugiro que utilize uma "view" p/ obter a 2ª coluna.
algo como:
select * from oficios
apenas isso.
a seguir na consulta relacione a coluna "destino" ao id da "view". O raciocínio segue abaixo:
há algum tempo surgiu (acho q foi neste forum mesmo) uma questão bem parecida
(um sistema de passagens aéreas).
então 1) imaginei um sisteminha bem simples,
2 tabelas: "municipios" (id e nome)
"viagens" (id, origem, destino)
(origem e destino, claro, chaves estrangeiras relacionadas à id de
"municípios").
2. a seguir 2 consultas p/ gerar as colunas "origem" e "destino":
SELECT municipios.nome AS origem
FROM viagens, municipios
where
viagens.origem=municipios.id;
SELECT municipios.nome AS destinook, isoladamente as consultas funcionaram, só que ao "uni-las"
não surgia nenhum resultado (como deve estar acontecendo contigo).
aparentemente o problema é uma limitação (ou "bug") da sql ou dos SGDBs:
não deve ser possivel "chamar" 2 vezes a mesma coluna da mesma tabela
(o problema ocorreu também c/ o Postgres).
A solução que encontrei foi criar uma "view" p/ criar a 2ª coluna:
"select * from municipios"
(chamei de "consulmunicipios", p/ facilitar);
a seguir foi só relacionar a coluna "destino" (tabela viagens)
c/ o id da consulta consulmunicipios:
SELECT municipios.nome AS origem, consulmunicipios.nome AS destino
FROM (municipios INNER JOIN viagens ON municipios.id=viagens.origem)
INNER JOIN consulmunicipios ON viagens.destino=consulmunicipios.id;
veja se seria isso..
olha, + fácil ainda: deu certo também usando 1 "alias" p/ a tabela:
SELECT municipios.nome AS origem, cmunicipios.nome AS destino
FROM (municipios INNER JOIN viagens ON municipios.id=viagens.origem)
INNER JOIN municipios as cmunicipios ON viagens.destino=cmunicipios.id;
http://dev.mysql.com/doc/refman/5.0/en/join.html
Veja a syntax correta , atente ao uso do ON para ligarnas tabelas e ao WHERE para as condições.