Ich versuche, verwandte Werte basierend auf mehreren Einträgen in der Datenbank abzurufen. Ich bin sehr neu in JOIN
MySQL, was die Verwendung von s usw. angeht, und ich versuche, PHP unnötig zu vermeiden.
Wenn ich „verschachtelte verwandte Werte abrufen“ sage, sehen Sie sich dieses Beispiel an:
"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 |
Wenn ich die Begrüßung der ersten Person abrufen möchte, wäre der Vorgang:
1 -> en -> 3 -- ID Flow en -> 3 -> hello -- Value flow Person 1: "hello" -- Final result
Alternativ, wenn ich die Begrüßung einer dritten Person abrufen wollte, würde sie lauten:
3 -> fr -> 2 -- ID flow fr -> 2 -> bonjour -- Value flow Person 3: "bonjour" -- Final result
Also, wie mache ich das in MySQL? Ich entschuldige mich, wenn es hier bereits eine Antwort gibt; ich kann anscheinend nicht den Wortlaut finden, um die richtige Antwort zu recherchieren.
建议 - 使相对列名称相等。 IE。不是
language
和languageId
,但在两个表中使用相同的名称(例如使用languageId
)。 Greeting 和greetingId 列也是如此。这将使查询更加简单:JOIN 根据某些条件连接两个表的记录。例如您想要将表“Person”中的记录与表“Language”中的记录连接起来,以便列
language
中的值等于列languageId
中的值可以通过给出以下 FROM 子句来做到这一点:这个 JOIN 的结果是一个看起来像这样的表