
Banco De Dados
#1
Posted 19/11/2003, 17:53
#2
Posted 19/11/2003, 17:59
é atravez desse campo que vamos interligar as duas.
select p.cod, p.produto, p.id_categoria, p.preco from categoria as c, produto as p where p.id_categoria=c.id_categoria;
voilà
espero que ajude
Edição feita por: Stormbringer, 19/11/2003, 18:00.
๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑
#3
Posted 24/11/2003, 20:45
vamos supor que a tabela produtos tenha um campo chamado id_categoria, que tb existe na tabela categorias e é chave primaria e unica
é atravez desse campo que vamos interligar as duas.
select p.cod, p.produto, p.id_categoria, p.preco from categoria as c, produto as p where p.id_categoria=c.id_categoria;
voilà
espero que ajude
po tá meio confuso com sua explicação, q isso aí cara,
tó tentando fazer isso mas tá dificil
eu tenho a tabela clientes ( tbl_dados_clientes ) e a tabela cidade ( tbl_cidade )
olha só isso:
tbl_dados_clientes
idc_cidade (recebe o id da cidade)
---
tbl_cidade
nome_cidade (nome da cidade)
-------
ele tem que substituir o idc_cidade pelo nome_cidade
Exemplo: em vez de mostrar 2 ele mostra Curitiba
-------------
eu fiz assim só que ele dá erro
$query_Recordset1 = "SELECT * FROM tbl_dados_clientes, tbl_cidade WHERE tbl_dados_clientes.idc_cidade = tbl_cidade.nome_cidade";
Edição feita por: teste24, 24/11/2003, 21:03.
#4
Posted 24/11/2003, 21:02
aparece o seguinte erro:
Unknown column 'nome_cidade' in 'where clause'
já tentei de diversas maneiras mas da erro ou nao acontece nada
#5
Posted 24/11/2003, 22:16

#6
Posted 24/11/2003, 22:27
O erro mostra "Coluna desconhecida", provavelmente essa coluna não existe, ou está com o nome errado!
eu coloquei o nome certo
fui no phpMyAdmin selecionei o nome e copiei e depois colei (ctrl C - ctrl V)
#7
Posted 25/11/2003, 14:53

ninguem vai me ajudar então?
tó tentando aprender, tento me esforçar mas tá dificil

coloquem um exemplo real aí, com um código que funciona por favor
#8
Guest
Posted 25/11/2003, 15:07
nesse Copiar o nome verifica se num tem espaço em branco !!!
#9
Posted 25/11/2003, 15:12
$query_Recordset1 = "SELECT * FROM tbl_dados_clientes, tbl_cidade WHERE tbl_dados_clientes.idc_cidade = tbl_cidade.nome_cidade";
bom, analisa o que vc vez:
selecione tudo da tbl_dados_clientes, da tbl_cidade apenas onde o campo idc_cidade da tabela tbl_dados_clientes for igual ao campo nome_cidade da tabela tbl_cidade
bom, pelo que vc disse, idc_cidade tem um numero e nome_cidade suponho que seja uma string...
se vc esta selecionando só onde idc_cidade=nome_cidade nunca vai te devolver NADA porque 2 nao é igual a "Curitiba"
pois bem, pra fazer um relacionamento inteligente vc deve fazer 2 tabelas mais ou menos assim:
tabela cidades:
campo 1 : cod (int, smallint, float ou qqer numerico)
campo 2 : nome_cidade (char, varchar ou congeneres)
tabela clientes:
campo 1: cliente (char, varchar ou congeneres)
campo 2: cod_cidade (int, smallint, float ou qqer numerico)
aih o relacionamento fica assim(tudo em azul é opcional, mas aumenta a performance da query)
select * from cidades as c, clientes as cl where cl.cod_cidade=c.cod and cl.cliente = "Stormbringer";
bem, suponha que vc tenha registrado o cliente Stormbringer assim
cliente = "Stormbringer"
cod_cidade = 1
e a sua tabela cidade esteja com o registro de codigo 1 assim:
cod = 1
nome_cidade = "Sao Paulo"
entao a consulta vai te devolver o seguinte:
cod = 1
nome_cidade = "Sao Paulo"
nome = "Stormbringer"
cod_cidade = 1
porque agora, vc linkando as 2 tabelas pelo cod_cidade e cod, ambos sao numericos...
editando: e esse é um relacionamento simpels entre 2 tabelas... imagina quando vc precisar relacionar 5,6 ou 7 tabelas ao emsmo tempo! Sempre analise a query que vc ta fazendo... pq comparar campos de tipos diferentes nunca vai dar certo...
Edição feita por: Stormbringer, 25/11/2003, 15:19.
๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)