Pergunta

CREATE TABLE college 
(  
  id       SERIAL PRIMARY KEY, 
  SCHOOL   VARCHAR(100),
  CColor   VARCHAR(100),  
  CCmascot VARCHAR(100)  
);

CREATE TABLE mats 
(  
  id                SERIAL PRIMARY KEY,  
  CColor            VARCHAR(100),  
  CCNAME            VARCHAR(100)  
);

MYSQL Ok, então aqui é o problema que eu acho que é bastante simples, mas eu não estou recebendo-lo direito. Eu tenho o nome da escola passado para mim através do URL e eu uso o $ _GET para obter o nome da faculdade agora eu preciso de consulta:
Usando o nome da escola que eu preciso para obter o ccolor eo CCNAME.

Foi útil?

Solução

Você tem o nome da faculdade e você deseja descobrir o nome da cor, se eu entendi corretamente.

O atributo ligando é ccolor.

Você consulta deve olhar um pouco como este:

select
    m.ccname, m.ccolor
from
    mats m
inner join
    college c
on
    c.ccolor = m.ccolor
where
    c.school = @myVariable

Outras dicas

A sua questão não é clara para que uma resposta só pode ser aproximada. Você precisa colunas em ambas as tabelas que podem ser usados ??para se juntar a eles, ou seja colunas que têm valores que podem ser usados ??para identificar quando um registro / s na tabela pai (faculdade) corresponde a um registro / s na tabela filho (esteiras) . Idealmente, você teria uma chave estrangeira nos mapas de mesa criança, que poderiam ser chamados college_id (Isto usa uma convenção de nomenclatura que as referências a tabela pai).

Dando uma chave estrangeira como o mencionado acima sua consulta se tornaria

select
  college.ccolor
from
  college inner join mats
    on college.id = mats.college_id
where
  mats.ccname = "<<COLOUR_DESIRED>>";

assumindo ccname é o nome do ccolor.

Banco de Dados Dica do dia: restrições de uso de chaves externas , ou você vai ter problemas de corrupção de dados, e as pessoas na SO não terá idéia de como as colunas se relacionam entre si.

Quando você sabe os porquês e os whatfors da modelagem relacional, você pode achar que é necessário ir sem eles (embora não seja recomendado a menos que você tem uma boa razão), mas por agora, usá-los para definir explicitamente como as tabelas se relacionam entre si.

Caso contrário, sua pergunta é tipo de como pedir a um cozinheiro chefe, "Eu tenho alguns frascos sem rótulo de alimentos e que eu acho que é orégano. Como faço para preparar um jantar romântico para dois?" (Umm .. o que está nos frascos ??)

doumentation chave estrangeira: http: / /dev.mysql.com/doc/refman/5.1/en/ansi-diff-foreign-keys.html

Junte-se a documentação: http://dev.mysql.com/ doc / refman / 5.1 / en / join.html

SELECT college.CColor FROM college
    INNER JOIN mats ON college.CColor = mats.CColor 
    AND mats.CColor = 'your query'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top