J'essaie de récupérer des valeurs associées en fonction de plusieurs entrées dans la base de données. Je suis très nouveau sur JOIN
MySQL en termes d'utilisation des , etc. et j'essaie d'éviter d'impliquer PHP inutilement.
Quand je dis "récupérer les valeurs associées imbriquées", regardez cet exemple :
"Person" table "Language" table "Greeting" table | personId | language | | languageId | greeting | | greetingId | value | |----------|----------| |------------|----------| |------------|-----------| | 1 | en | | en | 3 | | 1 | konichiwa | | 2 | jp | | jp | 1 | | 2 | bonjour | | 3 | fr | | fr | 2 | | 3 | hello |
Si je souhaite récupérer le message d'accueil de la première personne, le processus serait :
1 -> en -> 3 -- ID Flow en -> 3 -> hello -- Value flow Person 1: "hello" -- Final result
Alternativement, si je voulais récupérer le message d'accueil d'une troisième personne, cela se lirait :
3 -> fr -> 2 -- ID flow fr -> 2 -> bonjour -- Value flow Person 3: "bonjour" -- Final result
Alors, comment puis-je faire cela dans MySQL ? Je m'excuse si cela a déjà une réponse ; je n'arrive pas à trouver le libellé pour rechercher la bonne réponse.
Suggestion - Rendre les noms de colonnes relatifs égaux. c'est à dire. Non
language
和languageId
,但在两个表中使用相同的名称(例如使用languageId
). Il en va de même pour les colonnes Greeting et GreetingId. Cela rendra les requêtes encore plus simples :JOIN joint les enregistrements de deux tables en fonction de certaines conditions. Par exemple vous souhaitez joindre les enregistrements de la table "Personne" avec les enregistrements de la table "Langue" afin que les valeurs de la colonne
language
中的值等于列languageId
puissent se faire en donnant la clause FROM suivante :Le résultat de ce JOIN est un tableau qui ressemble à ceci