国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

檢索mysql中嵌套的相關(guān)值
P粉007288593
P粉007288593 2024-04-04 17:29:06
0
2
669

我正在嘗試根據(jù)資料庫中的多個條目檢索相關(guān)值。在使用 JOINs 等方面,我對 MySQL 非常陌生,我試圖避免不必要地涉及 PHP。

當我說「檢索巢狀相關(guān)值」時,請看以下範例:

"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 中執(zhí)行此操作?如果這已經(jīng)有了答案,我深表歉意;我似乎無法找到研究正確答案的措辭。

P粉007288593
P粉007288593

全部回覆(2)
P粉186904731
SELECT greeting.value
FROM person
JOIN language ON person.language = language.languageId
JOIN greeting ON language.greeting = greeting.greetingId
WHERE person.personId = ?

建議 - 使相對列名稱相等。 IE。不是 languagelanguageId,但在兩個表中使用相同的名稱(例如使用 languageId)。 Greeting 和greetingId 欄位也是如此。這將使查詢更加簡單:

SELECT greeting.value
FROM person
NATURAL JOIN language
NATURAL JOIN greeting
WHERE person.personId = ?
P粉194541072

JOIN 根據(jù)某些條件連接兩個表格的記錄。例如您想要將表格「Person」中的記錄與表格「Language」中的記錄連接起來,以便欄位language 中的值等於欄位languageId 中的值可以透過給出以下FROM 子句來做到這一點:

FROM Person INNER JOIN Language 
  ON Person.language = Language.languageId

這個 JOIN 的結(jié)果是一個看起來像這樣的表格

Person.personId 人物.語言 語言.語言Id 語言.greeting
1 一個 一個 3
2 日本 日本 1
3 fr fr 2
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板