Comment pouvez-j'ai une requête à l'aide d'une clé étrangère dans MySQL?
Droit maintenant, j'ai une petite base de données avec deux tables pour ressembler à quelque chose comme ceci:
users table
====================
id name status_id
1 Bobby 3
2 James 2
et
statuses table
=============
id value
1 Waiting
2 Approved
3 Other
status_id est configuré comme une contrainte de clé étrangère à l'id de l'statuts de la table. Ma requête ressemble à quelque chose comme ceci:
SELECT *
FROM `users`
WHERE `status_id` = 2";
Quand je l'affiche $row['status_id']
il sorties 2
mais je voudrais qu'il affiche comme Approved
au lieu de cela, quelle est la meilleure façon d'accomplir cette?
stackoverflow.com/questions/260441/....... Cependant les clés étrangères sont uniquement pris en charge sur InnoDB, vous ne pouvez pas faire une telle chose en MyIsam.
la relation est correctement installé et qu'il est InnoDB, je n'ai tout simplement pas comprendre comment utiliser
la relation est correctement installé et qu'il est InnoDB, je n'ai tout simplement pas comprendre comment utiliser
JOIN
correctement, mais qu'il a été répondu ci-dessous.OriginalL'auteur Josh Mountain | 2012-09-18
Vous devez vous connecter pour publier un commentaire.
J'ai essayé d'utiliser ce que ma requête, mais quand je l'écho
$row['status_id']
il encore sorties2
C'est parce que vous demandez status_id, regarde ma réponse. Vous devez vous demander "valeur" si c'est effectivement le nom de la colonne dans les statuts de la table.
ah bien sûr, qui fonctionne parfaitement merci! Excuse mon noobness, je suis nouvelle marque pour les clés étrangères.
Pas de problème. Profitez du code du travail.
OriginalL'auteur Clodoaldo Neto
Ce que vous avez besoin est ce
et puis vous pouvez vous référer à
OriginalL'auteur Iberê
La façon la plus simple serait par le biais de joint:
(si vous ne voulez pas le statut-id, vous pouvez spécifier les colonnes que vous voulez dans la sélection de la clause.)
OriginalL'auteur Tobb
Votre table des utilisateurs n'ont pas la valeur de a approuvé. C'est dans vos statuts de la table. Lorsque vous demandez status_id vous allez obtenir cette valeur de retour de cette requête. Que vous avez à faire un
JOIN ON status_id
pour faire ce travail je pense. Ou faire une deuxième requête.OriginalL'auteur thatidiotguy
Vous n'êtes pas REJOINDREing ici:
OriginalL'auteur CodeTalk