Salvar 3 vezes a chave na mesma tabela

23/04/2013

1

Boa Tarde, preciso de ajuda , precisaria salvar 3 vezes a chave de outra tabela em uma só tabela, com 3 campo recebendo a mesma chave , alguem pode me ajudar ?
Responder

Posts

23/04/2013

Joel Rodrigues

Qual a dificuldade exatamente? Você quer que um campo de uma tabela seja chave estrangeira com 3 campos de outra?

Tipo:
Tabela_A
-Codigo

Tabela_B
-Codigo_A1 (apontando para o Codigo da Tabela_A)
-Codigo_A2 (apontando para o Codigo da Tabela_A)
-Codigo_A3 (apontando para o Codigo da Tabela_A)
Responder

23/04/2013

Joabe Silva

Isso mesmo , tem alguma ideia de como faço isso ?
alguma forma ?
Responder

24/04/2013

Matheus Rs

ALTER TABLE 
TABELA1 
ADD CONSTRAINT FK_TABELA1_TABELA2 
FOREIGN KEY (CAMPTABELA1) REFERENCES TABELA2 (CAMPOTABELA2) ON UPDATE CASCADE;

ALTER TABLE 
TABELA1 
ADD CONSTRAINT FK_TABELA1_TABELA3 
FOREIGN KEY (CAMPTABELA1) REFERENCES TABELA3 (CAMPOTABELA3) ON UPDATE CASCADE;

ALTER TABLE 
TABELA1 
ADD CONSTRAINT FK_TABELA1_TABELA4 
FOREIGN KEY (CAMPTABELA1) REFERENCES TABELA4 (CAMPOTABELA4) ON UPDATE CASCADE;


Isso?

Abçs.
Responder

25/04/2013

Joabe Silva

A tabela são essas. no campo v1 , v2 , v3 , do talhão deve receber os dados da tabela variedades , como faço ?

segue o link com a imagem da tabela modelada.
http://www.brimages.com.br/view.php?filename=664Sem_t_tulo.png
Responder

25/04/2013

Joabe Silva

Resolvi , salvei 3 vezes a chave no outro campo que eu precisava.
Responder

25/04/2013

Joel Rodrigues

Opa, obrigado pelo retorno. E desculpe por eu ter sumido.
Mas o nosso amigo acima deu a dica chave, é só substituir os nomes das tabelas.
Estou marcando este tópico como Concluído.
Responder

25/04/2013

Joabe Silva

resolvi em partes , pois na hora que faço um join em entre as tabelas elas nao trazem a categoria .

vou postar minhas tabelas denovo, ve se vocês ,me entende.

[url][URL=http://www.crazzy.com.br/upload/upload-img] [IMG]http://www.crazzy.com.br/upload/upload-img/pictures/9bfb0c61f040d6c3d1085db1fafeb2b8.png[/IMG][/URL][/url]
Responder

25/04/2013

Joabe Silva

resolvi em partes , pois na hora que faço um join em entre as tabelas elas nao trazem a categoria .

vou postar minhas tabelas denovo, ve se vocês ,me entende.

[url=http://www.crazzy.com.br/upload/upload-img] [img]http://www.crazzy.com.br/upload/upload-img/pictures/9bfb0c61f040d6c3d1085db1fafeb2b8.png[/img]correção
Responder

25/04/2013

Joabe Silva

Opa, obrigado pelo retorno. E desculpe por eu ter sumido.
Mas o nosso amigo acima deu a dica chave, é só substituir os nomes das tabelas.
Estou marcando este tópico como Concluído.



reabrindo post.
Responder

26/04/2013

Joel Rodrigues

Como está seu SELECT?
Responder

26/04/2013

Matheus Rs

Manda o teu SELECT.
Responder

26/04/2013

Joabe Silva

Ele so me mostra o do v2 , não mostra o do campo v1 e v3.

SELECT
  talhoes.*,
  variedades.*
FROM talhoes
  INNER JOIN variedades
    ON talhoes.v2 = variedades.cod_variedade
Responder

26/04/2013

Joabe Silva

Ele so me mostra o do v2 , não mostra o do campo v1 e v3.

SELECT
  talhoes.*,
  variedades.*
FROM talhoes
  INNER JOIN variedades
    ON talhoes.v2 = variedades.cod_variedade



Podem me ajudar com um select para mostrar as 3 variedade de cada talhão ?
Responder

26/04/2013

Matheus Rs

Só esta te trazendo o campo V2 no resultado, isso?
A tua o campo V2 da tabela TALHOES tem a mesma informação que o campo COD_VARIEDADE da tabela VARIEDADES?
Ao invéz deste:
SELECT
talhoes.*,
variedades.*
FROM talhoes
INNER JOIN variedades
ON talhoes.v2 = variedades.cod_variedade


Tenta este:

SELECT DISTINCT
t.V2 , v.cod_variedade
FROM talhoes t
LEFT JOIN variedades v
ON v.cod_variedade = t.v2


Se não for isto, verifica a estrutura das tabelas, informações gravadas e campos de ligações. Qualquer coisa manda a estrutura das duas tabelas aqui no FORUM;
Responder

26/04/2013

Joabe Silva

Não certo não , eu preciso listar , o talhão e as 3 variedades , mostrando o mome da variedade e não o codigo como ja consigo fazer.


segue as estruturas da tabela.

CREATE TABLE fazenda.talhoes (
  cod_talhao INT(11) NOT NULL AUTO_INCREMENT,
  nome VARCHAR(45) DEFAULT NULL,
  a_total VARCHAR(255) DEFAULT NULL,
  a_prod VARCHAR(255) DEFAULT NULL,
  v1 INT(11) DEFAULT NULL,
  v2 INT(11) DEFAULT NULL,
  v3 INT(11) DEFAULT NULL,
  i_plantio DATE DEFAULT NULL,
  t_plantio DATE DEFAULT NULL,
  i_colheita DATE DEFAULT NULL,
  t_colheita DATE DEFAULT NULL,
  cod_safra INT(11) DEFAULT NULL,
  cod_cultura INT(11) DEFAULT NULL,
  cod_fazenda INT(11) DEFAULT NULL,
  PRIMARY KEY (cod_talhao),
  CONSTRAINT FK_TABELtalhoes_TABELAvariedades FOREIGN KEY (v2)
    REFERENCES fazenda.variedades(cod_variedade) ON DELETE RESTRICT ON UPDATE CASCADE,
  CONSTRAINT FK_TABELtalhoes1_TABELAvariedades2 FOREIGN KEY (v3)
    REFERENCES fazenda.variedades(cod_variedade) ON DELETE RESTRICT ON UPDATE CASCADE,
  CONSTRAINT FK_talhoes_cultura_cod_cult FOREIGN KEY (cod_cultura)
    REFERENCES fazenda.cultura(cod_cult) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT FK_talhoes_empresa_cod_emp FOREIGN KEY (cod_fazenda)
    REFERENCES fazenda.empresa(cod_emp) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT FK_talhoes_safra_cod_safra FOREIGN KEY (cod_safra)
    REFERENCES fazenda.safra(cod_safra) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT FK_talhoes_variedades_cod_variedade FOREIGN KEY (v1)
    REFERENCES fazenda.variedades(cod_variedade) ON DELETE RESTRICT ON UPDATE RESTRICT
)
ENGINE = INNODB
AUTO_INCREMENT = 1
CHARACTER SET utf8
COLLATE utf8_general_ci;





CREATE TABLE fazenda.variedades (
  cod_variedade INT(11) NOT NULL AUTO_INCREMENT,
  variedade VARCHAR(45) DEFAULT NULL,
  transgenico VARCHAR(6) DEFAULT NULL,
  cod_cultura INT(11) DEFAULT NULL,
  PRIMARY KEY (cod_variedade),
  CONSTRAINT FK_variedades_cultura_cod_cult FOREIGN KEY (cod_cultura)
    REFERENCES fazenda.cultura(cod_cult) ON DELETE RESTRICT ON UPDATE RESTRICT
)
ENGINE = INNODB
AUTO_INCREMENT = 4
AVG_ROW_LENGTH = 8192
CHARACTER SET utf8
COLLATE utf8_general_ci;

Responder