Question

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, voici donc le problème, je pense que c'est assez simple, mais je ne le fais pas bien. Le nom de l’école m’a été transmis via l’URL et j’utilise le $ _GET pour obtenir le nom du collège que j’ai besoin d’interroger:
En utilisant le nom SCHOOL, je dois obtenir le CCOLOR et le CCNAME.

Était-ce utile?

La solution

Vous avez le nom du collège et vous souhaitez connaître le nom de la couleur, si je comprends bien.

L'attribut de liaison est CColor.

Votre requête devrait ressembler un peu à ceci:

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

Autres conseils

Votre question n’est pas claire, une réponse ne peut donc être qu’approximative. Vous avez besoin de colonnes dans les deux tables qui peuvent être utilisées pour les joindre, c'est-à-dire des colonnes qui ont des valeurs qui peuvent être utilisées pour identifier quand un / des enregistrement (s) de la table parent (collège) correspond à un / des enregistrement (s) de la table enfant (mats) . Idéalement, vous devriez avoir une clé étrangère dans les mappes de table enfant, qui pourrait être nommée college_id (elle utilise une convention de dénomination faisant référence à la table parent).

En donnant une clé étrangère comme celle mentionnée ci-dessus, votre requête deviendrait

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

en supposant que ccname est le nom de ccolor.

Astuce du jour concernant la base de données: Utilisez les contraintes de clé étrangère . Sinon, vous rencontrerez des problèmes de corruption des données. Par conséquent, les personnes sous SO n'auront aucune idée du lien qui existe entre vos colonnes.

Lorsque vous connaissez les tenants et aboutissants de la modélisation relationnelle, vous pouvez être amené à vous en passer (bien que ce ne soit pas recommandé à moins que vous n'ayez une très bonne raison), mais pour le moment, utilisez-les pour définir explicitement le fonctionnement des tables. se rapportent les uns aux autres.

Sinon, votre question est un peu comme si vous demandiez à un chef: "J'ai quelques pots de nourriture sans étiquette et ce que je pense est de l’origan. Comment préparer un dîner romantique pour deux? & Quot; (Heu .. qu'est-ce qu'il y a dans les bocaux?)

Définition de la clé étrangère: http: / /dev.mysql.com/doc/refman/5.1/fr/ansi-diff-foreign-keys.html

Joindre la documentation: 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'
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top