我正在尝试根据数据库中的多个条目检索相关值。在使用 JOIN
s 等方面,我对 MySQL 非常陌生,我试图避免不必要地涉及 PHP。
当我说“检索嵌套相关值”时,请看以下示例:
"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 |
如果我想检索第一个人的问候语,流程将是:
1 -> en -> 3 -- ID Flow en -> 3 -> hello -- Value flow Person 1: "hello" -- Final result
或者,如果我想检索第三个人的问候语,它会改为:
3 -> fr -> 2 -- ID flow fr -> 2 -> bonjour -- Value flow Person 3: "bonjour" -- Final result
那么,我该如何在 MySQL 中执行此操作?如果这已经有了答案,我深表歉意;我似乎无法找到研究正确答案的措辞。
建议 - 使相对列名称相等。 IE。不是
language
和languageId
,但在两个表中使用相同的名称(例如使用languageId
)。 Greeting 和greetingId 列也是如此。这将使查询更加简单:JOIN 根据某些条件连接两个表的记录。例如您想要将表“Person”中的记录与表“Language”中的记录连接起来,以便列
language
中的值等于列languageId
中的值可以通过给出以下 FROM 子句来做到这一点:这个 JOIN 的结果是一个看起来像这样的表